Traductor


Las cadenas como matrices en PHP

PHP (y en otros lenguajes), contempla la posibilidad de convertir una cadena alfanumérica en una matriz, y viceversa: 
  • Tomar una matriz y colocar todos sus elementos, uno a continuación de otro, formando una cadena que, lógicamente, puede ser almacenada en una variable. 
Para convertir una cadena en una matriz de datos, debemos seguir dos pasos: 
  • En primer lugar, contaremos con la función chunk_split(). 
    • Esta recibe como parámetro obligatorio la cadena que hay que dividir (o la variable que la contiene) y genera otra cadena en la que, cada 76 caracteres, introduce una secuencia “\r\n” (retorno del carro y nueva línea). 
    • Como parámetros opcionales podemos incluir el número de caracteres que se contarán en cada parte de la cadena resultante, en lugar de 76, así como la secuencia que actúa como separador, en lugar de “\r\n”. 
    • Por ejemplo, suponga que quiere introducir una secuencia “*-*” cada 10 caracteres. La sintaxis será la siguiente:

$cadenaNueva=chunk_split($cadenaOriginal,10,”*-*”); 

Es importante que comprenda que chunk_split(), NO modifica la cadena que recibe como argumento, sino que genera otra variable con la cadena modificada, así que la original permanece inalterada.
Una vez que tenemos la cadena modificada en otra variable, llega a usar la función explode(), esto para convertir dicha cadena en una matriz.
Esta función recibe dos parámetros obligatorios.
  • El primero es la secuencia que debe buscar como separador y que es la que establecimos en chunk_split().
  • El segundo es el nombre de la cadena modificada, generada por chunk_split().
  • También puede recibir un tercer argumento opcional, el cual hace referencia al número máximo de elementos que deberá tener la matriz 
La función explode() devuelve una matriz en la que creará un nuevo elemento cada vez quue encuentre el separador.
Así pues, la matriz tendrá tantos elementos como separadores haya, mas uno.
Veamos el siguiente script:
<?php
                $cadenaOriginal="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Se usa la funcion chunk_split para generar una cadena en
//la que,cada 10 caracteres, se introduce la secuencia "*.*".
                $cadenaModificada=chunk_split($cadenaOriginal,10,"*.*");
//Se muestran las cadenas en la página para ver que
//la cadena original no se ha alterado.
                echo ("La cadena original es: $cadenaOriginal<br />");
                echo ("La cadena modificada es: $cadenaModificada<br /><br /><br />");
//Se genera una matriz a partir de la cadena modificada.
                $matriz=explode ("*.*",$cadenaModificada);
/*Cada elemento de la matriz contendrá un fragmento de la
cadena original. PHP usa la secuencia separadora ("*.*", en este ejemplo)
para saber donde debe empezar y acabar cada elemento de la matriz.
La matriz se genera, de forma automática con un último elemento vacío.
No olvide tener esto en cuenta.*/
                $elementosDeLaMatriz=count($matriz);
                echo ("La matriz tiene $elementosDeLaMatriz elementos.<br />");
                for ($contador=0;$contador<$elementosDeLaMatriz;$contador++){
                               echo ("El elemento $contador contiene '$matriz[$contador]'<br />");
                }

?> 
Observe en las lineas resaltadas de naranja, el uso de las dos funciones que acabamos de conocer.


Otra función con la que contamos es implode() la ual lleva a cabo la función contraria a la función  explode(), es decir, parte de una matriz y une todos sus elementos formando una cadena.

Como argumento recibe el nombre de la matriz, cuyos elementos deberán constituir la cadena que nos interesa.
Para ver su funcionamiento he preparado el siguiente script::
<?php
                $cadenaOriginal="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Se usa la funcion chunk_split para generar una cadena en
//la que,cada 10 caracteres, se introduce la secuencia "*.*".
                $cadenaModificada=chunk_split($cadenaOriginal,10,"*.*");
//Se muestran las cadenas en la página para ver que
//la cadena original no se ha alterado.
                echo ("La cadena original es: $cadenaOriginal<br>");
                echo ("La cadena modificada es: $cadenaModificada<br><br><br>");
//Se genera una matriz a partir de la cadena modificada.
                $matriz=explode ("*.*",$cadenaModificada);
/*Cada elemento de la matriz contendrá un fragmento de la
cadena original. PHP usa la secuencia separadora ("*.*", en este ejemplo)
para saber donde debe empezar y acabar cada elemento de la matriz.
La matriz se genera, de forma automática con un último elemento vacío.
No olvide tener esto en cuenta.*/
                $elementosDeLaMatriz=count($matriz);
                echo ("La matriz tiene $elementosDeLaMatriz elementos.<br>");
                for ($contador=0;$contador<$elementosDeLaMatriz;$contador++){
                               echo ("El elemento $contador contiene '$matriz[$contador]'<br>");
                }
                echo ("<br><br>");

//Recuperamos la cadena original a partir de la matriz con implode().
                $nuevaCadena=implode($matriz);
                echo ("La cadena recuperada es: $nuevaCadena<br>");

?>
Al cargar el script, verá algo muy parecido al script anterior  sin embargo al final, vera la cadena reconstruida a partir de la matriz.

Existe una función idéntica en funcionamiento a la función implode(), se trata de la función join(), a estas funciones se les denomina alias, usted puede usar la que desee.

Recuerden Comentar Compartir y Darle 

Hasta la Próxima

Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto

0 comentarios:

Publicar un comentario