Potrzebuję usunąć puste wpisy na wielopoziomowych tablicach. Na razie mogę usunąć wpisy z pustymi sub-macierzy, ale nie jest pusta tablice ... mylić, więc mogę ... Myślę, że kod pomogą wyjaśnić lepiej ...PHP - Jak usunąć rekursywnie puste wpisy tablicy?
<?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, ten kod usunie "pseudonim", "datę urodzenia", ale nie usuwa "rowerów", które mają pustą tablicę.
Moje pytanie brzmi ... Jak usunąć wpis "rowery"?
Pozdrawiam,
Przepraszam za mój angielski ...
Dlaczego chcesz je usunąć? – John