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="}}
}
*/
$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="}}
}
*/
Your place is valueble for me.Thanks!