Convertir una matriz multidimensional en una matriz única [duplicado]
Tengo una matriz que es multidimensional sin ningún motivo.
/* This is how my array is currently */
Array
(
[0] => Array
(
[0] => Array
(
[plan] => basic
)
[1] => Array
(
[plan] => small
)
[2] => Array
(
[plan] => novice
)
[3] => Array
(
[plan] => professional
)
[4] => Array
(
[plan] => master
)
[5] => Array
(
[plan] => promo
)
[6] => Array
(
[plan] => newplan
)
)
)
Quiero convertir esta matriz en esta forma
/*Now, I want to simply it down to this*/
Array (
[0] => basic
[1] => small
[2] => novice
[3] => professional
[4] => master
[5] => promo
[6] => newplan
)
¿Alguna idea de cómo hacer esto?
Aceptado
Esta única línea haría eso:
$array = array_column($array, 'plan');
El primer argumento es una matriz | El segundo argumento es una clave de matriz.
Para obtener más detalles, vaya a la documentación oficial: https://www.php.net/manual/en/function.array-column.php .
Suponiendo que esta matriz puede o no estar anidada de forma redundante y no está seguro de qué tan profunda es, esto debería aplanarla para usted:
function array_flatten($array) {
if (!is_array($array)) {
return FALSE;
}
$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, array_flatten($value));
}
else {
$result[$key] = $value;
}
}
return $result;
}