Alle Elemente eines mehrdimensionalen Arrays durchlaufen und bearbeiten

Wenn mit den Werten eines mehrdimensionalen Arrays gearbeitet wird, dann kommen häufig Schleifen zum Einsatz. Das kann bei großen verschachtelten Arrays viel „Schreibarbeit“ bedeuten. Die PHP-Funktion „array_walk_recursive“ vereinfacht das Ganze. In dem nachfolgenden Beispiel werden alle Werte des Arrays in base64 kodiert.

Code:

$aData = array();
$aData['ebene1']            = array_fill(0, 2, 'Wert1');
$aData['ebene1']['ebene2']  = array_fill(0, 2, 'Wert2');

var_dump($aData);

/**
 * Ausgabe (vorher)
 array(1) { ["ebene1"]=> array(3)
                         {[0]=> string(5) "Wert1"
                          [1]=> string(5) "Wert1"
                          ["ebene2"]=> array(2)
                                       {[0]=> string(5) "Wert2"
                                        [1]=> string(5) "Wert2"}}
}
*/


function encodeToBase64(&$aItem, $mKey)
{
    $aItem = base64_encode($aItem);
}

array_walk_recursive($aData, "encodeToBase64");

var_dump($aData);

/*
 * Ausgabe (nachher):
array(1) { ["ebene1"]=> array(3)
                        {[0]=> string(8) "V2VydDE="
                         [1]=> string(8) "V2VydDE="
                         ["ebene2"]=> array(2)
                                      {[0]=> string(8) "V2VydDI="
                                       [1]=> string(8) "V2VydDI="}}
}
*/

Ein Gedanke zu „Alle Elemente eines mehrdimensionalen Arrays durchlaufen und bearbeiten“

Schreibe einen Kommentar