PHP - so entfernen Sie leere Einträge eines Arrays rekursiv?

Muss ich entfernen, leere Einträge auf der mehrstufigen arrays. Jetzt kann ich Einträge entfernen mit leeren sub-arrays, aber nicht leere arrays... verwirrt, also ich... ich denke, der code wird helfen, besser zu erklären...

<?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, dieser code entfernen "nickname", "Geburtstag", aber nicht " entfernen "Fahrräder", haben ein leeres array.

Meine Frage ist... Wie Sie die "bikes" - Eintrag?

Beste Grüße,

Sorry für mein Englisch...

  • Warum willst du Sie entfernen?
InformationsquelleAutor André | 2011-10-08
Schreibe einen Kommentar