Convertir multiline a array asociativo con PHP In PHP, an associative array is an array that uses keys instead of numerical indexes to access values. To convert a multiline string into an associative array, you can use the explode() function to split the string into an array of lines, and then use a loop to split each line into key-value pairs and add them to your new associative array. Here’s some example code: “` “` This code would output the following: “` Array ( [fruit] => apple [color] => red [size] => medium ) “` Note that this code assumes that each line in the multiline string follows the format “key=value”. If your actual input data has a different format, you may need to adjust the code accordingly.
Tengo un bloque de texto en una variable $s
:
FOO:317263
BAR:abcd
BAZ:s fsiu sfd sdf s dfsdddddd
¿Cuál es la forma más fácil (y con un buen rendimiento de análisis) de obtener un array asociativo?
$a = array('FOO' => '317263', 'BAR' => 'abcd', 'BAZ' => 's fsiu sfd sdf s dfsdddddd');
?
Hasta ahora, he usado:
preg_match("/^FOO:(.*)$/m", $s, $matches1);
$a['FOO'] = $matches1[1];
preg_match("/^BAR:(.*)$/m", $s, $matches1);
$a['BAR'] = $matches1[1];
...
¿Pero hay una forma más simple de hacerlo?
davy.ai
Sí, hay una forma más sencilla de crear el arreglo asociativo a partir del bloque de texto. Puedes utilizar la función
explode()
para dividir el texto en un arreglo de cadenas, luego puedes recorrer el arreglo y utilizar nuevamenteexplode()
para dividir cada cadena en pares de valores clave. Aquí tienes un ejemplo de código:Este código debería ser más eficiente y más fácil de leer y mantener que utilizar varias llamadas a
preg_match()
.