¿Cómo "aplanar" una matriz multidimensional a una simple en PHP? [duplicar]
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_split
para 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_split
mis valores originales podrían romperse.
¿ Existe algo parecido combine($array1, $array2)
a matrices dentro de una matriz multidimensional?
$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);
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. $v
es el valor de tu $original_array
.