Necesito eliminar entradas vacías en matrices multinivel. Por ahora puedo eliminar entradas con vacíos sub-arrays, pero no las matrices vacías ... confuso, por lo que puedo ... Creo que el código le ayudará a explicar mejor ...PHP - ¿Cómo eliminar las entradas vacías de una matriz recursivamente?
<?php
/**
*
* This function remove empty entries on arrays
* @param array $array
*/
function removeEmptysFromArray($array) {
$filtered = array_filter($array, 'removeEmptyItems');
return $filtered;
}
/**
*
* This is a Callback function to use in array_filter()
* @param array $item
*/
function removeEmptyItems($item) {
if (is_array($item)) {
return array_filter($item, 'removeEmptyItems');
}
if (!empty($item)) {
return true;
}
}
$raw = array(
'firstname' => 'Foo',
'lastname' => 'Bar',
'nickname' => '',
'birthdate' => array(
'day' => '',
'month' => '',
'year' => '',
),
'likes' => array(
'cars' => array('Subaru Impreza WRX STi', 'Mitsubishi Evo', 'Nissan GTR'),
'bikes' => array(),
),
);
print_r(removeEmptysFromArray($raw));
?>
Ok, este código eliminará "apodo", "fecha de nacimiento", pero no eliminará "bicicletas" que tengan una matriz vacía.
Mi pregunta es ... ¿Cómo eliminar la entrada "bicis"?
Best Regards,
Lo siento por mi Inglés ...
¿Por qué quieres eliminarlos? – John