¿Cómo "aplanar" una matriz multidimensional a una simple en PHP? [duplicar]

Resuelto Adriana asked hace 54 años • 23 respuestas

Probablemente sea una pregunta para principiantes, pero ya estoy revisando la documentación durante más tiempo y no puedo encontrar ninguna solución. Pensé que podría usar implosionar para cada dimensión y luego volver a juntar esas cadenas str_splitpara crear una nueva matriz simple. Sin embargo, nunca sé si el patrón de unión no está también en los valores y, por lo tanto, después de hacerlo, str_splitmis valores originales podrían romperse.

¿ Existe algo parecido combine($array1, $array2)a matrices dentro de una matriz multidimensional?

Adriana avatar Jan 01 '70 08:01 Adriana
Aceptado
$array  = your array

$result = call_user_func_array('array_merge', $array);

echo "<pre>";
print_r($result);

REF: http://php.net/manual/en/function.call-user-func-array.php

Aquí hay otra solución (funciona con una matriz multidimensional):

function array_flatten($array) {

   $return = array();
   foreach ($array as $key => $value) {
       if (is_array($value)){ $return = array_merge($return, array_flatten($value));}
       else {$return[$key] = $value;}
   }
   return $return;

}

$array  = Your array

$result = array_flatten($array);

echo "<pre>";
print_r($result);
Prasanth Bendra avatar Feb 20 '2013 05:02 Prasanth Bendra

Esta es una línea, SÚPER fácil de usar:

$result = array();
array_walk_recursive($original_array,function($v) use (&$result){ $result[] = $v; });

Es muy fácil de entender, dentro de la función/cierre anónimo. $ves el valor de tu $original_array.

Arnold Roa avatar Apr 11 '2013 02:04 Arnold Roa