Hier mal ein kleines Snippet 1 um auf ein bestimmtes Element in verschachtelten Arrays zuzugreifen. Nützlich, wenn ein String der Form "key1.key2.key3"
vorliegt, und damit auf $array['key1']['key2']['key3']
zugegriffen werden soll.
Funktionen
<?php /** * @param string $spec Spezifikation in der Form 'item_1.item_2.[...].item_n=wert' * @param array $array Ziel-Array */ function insert_into_array($spec, &$array) { list($path,$value) = explode('=', $spec, 2); $current =& $array; // setze Referenz $current Schritt für Schritt auf $array['item_1']['item_2'][...]['item_n'] foreach(explode('.', $path) as $key) { $current =& $current[$key]; } // belege dieses Array-Element mit $value $current = $value; } /** * @param string $path Pfad in der Form 'item_1.item_2.[...].item_n' * @param array $array Ursprungs-Array */ function &get_from_array($path, &$array) { $current =& $array; foreach(explode('.', $path) as $key) { $current =& $current[$key]; } return $current; }
Beispiel: Nutzung
$array = array(); insert_into_array('item.test.6.12134.12.12.343=4546', $array); insert_into_array('item.test.23=foo', $array); var_dump(get_from_array('item.test', $array));
Beispiel: Ausgabe
array(2) { [6] => array(1) { [12134] => array(1) { [12] => array(1) { ... } } } [23] => string(3) "foo" }