✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Dividir cadenas y enteros en PHP

15

Trabajar con cadenas, números y expresiones regulares en PHP es relativamente fácil dada la gran cantidad de funciones que proporciona el lenguaje.

Sin embargo, hay momentos en los que descubrir cómo dividir según ciertos criterios puede no ser claro de inmediato, o puede ser claro lo que debe hacer, pero no la mejor manera de hacerlo.

Foto de Agê Barros en Unsplash

Por ejemplo, supongamos que tiene una cadena que se mezcla con números y dígitos. Para esta publicación, digamos que una cadena dada:

  • incluye horas y minutos,
  • cuando los minutos están en 60,
  • la cadena debe aumentar el valor de las horas en uno
  • el valor de los minutos se pone a cero.

Un ejemplo, una cadena problemática, entonces, puede ser de la forma T3H60M. Entonces, ¿cómo podríamos dividir la cadena en cadenas y enteros y reconstruirla adecuadamente?

En este caso, hay tres cosas que he encontrado útiles. Sin ningún orden en particular:

Y el orden en que las operaciones de usar cada uno de los anteriores es algo como esto:

  1. use una expresión regular para encontrar todos los dígitos en la cadena,
  2. eliminar todo excepto los dígitos en la matriz
  3. si el segundo dígito es 60, configúrelo igual a cero
  4. aumentar el primer índice de la matriz en uno
  5. reconstruir la cadena.

Si los pasos anteriores se convirtieran en código, este podría ser el aspecto que tendría:

Tenga en cuenta que opto por usar array_filter para eliminar valores duplicados y uso array_values ​​para limpiar la matriz en solo dos entradas, la primera de las cuales es la hora, la segunda es el minuto.

Después de eso, determino el valor de cada uno de los índices de la matriz (y recuerde, son cadenas, por lo que tendrá que convertirlas en números enteros para aumentar su valor de manera adecuada.

Finalmente, construyo la cadena como (y si) es necesario.

Claro, este es un caso un poco especializado, pero la solución puede ser más generalizada en función de sus propias necesidades.

Fuente de grabación: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More