Geschateltes assoziatives Array nach einem Schlüssel durchsuchen

TheGreenDragon

Erfahrenes Mitglied
Hi,
ich hab ein assoziatives Array welches wiederum als Values wieder assoziative Arrays hält. Und das in unterschiedlicher Tiefe. Jetzt suche ich genau das Array, das meinen gesuchten Key inne hat.
Also:
PHP:
array(
a => array(),
b => array(
    c => array(
        d=> array(),
        e=> array(),
    ),
),
);
So ich habe nun e als Schlüssel und suche das Array wo e drinne ist also c. Besser gesagt ich such eigentlich den Pfad zu meinem e.
PHP:
$wurzel[bekannt][?][?]...[ c][e]
Ich brauche also alle Schlüssel bis e.
 
Zuletzt bearbeitet:
Und was ist jetzt die Frage?

Lauf den ganzen Baum rekursiv durch.

edit: Jetzt steht da, was er braucht...geht doch
 
Zuletzt bearbeitet:
geht warscheinlich noch schöner...

PHP:
<?php 
$array = array(
            'a' => array(),
            'b' => array(
                    'c' => array(
                            'd'=> array(),
                            'e'=> array(),
                        )
                    )
            );

$pathArray = search($array, 'e');
krsort($pathArray);

echo implode('->', $pathArray);

function search($array, $searchKey){
   foreach($array as $key => $value){
       if($key == $searchKey){
           return array($key);
       }elseif(is_array($value)){
           $retVal = search($value, $searchKey);
           if(is_array($retVal)){
               $retVal[] = $key;
               return $retVal;
               
           }           
       }
   } 
   return false;
} 

?>
 

Neue Beiträge

Zurück