Suchen Sie nach einem Wert in einem mehrdimensionalen Array und rufen Sie den Pfad in PHP ab
Dies ist mein Array:
<code>$array = array ( '1' => array( 'title' => 'Level1', 'nodes' => array( '11' => array('title' => 'sub1_company1'), '12' => array('title' => 'sub2_company1'), '13' => array( 'title' => 'sub3_company1', 'nodes' => array( '131' => array('title' => 'item1_sub3_company1'), '132' => array('title' => 'item2_sub3_company1'), ), ), ), ), '2' => array( 'title' => 'Level2', 'nodes' => array( '21' => array('title' => 'sub1_company2'), '22' => array('title' => 'sub2_company2'), ), ), '3' => array( 'title' => 'Level3', 'nodes' => array( '31' => array('title' => 'sub1_company3'), '32' => array( 'title' => 'sub2_company3', 'nodes' => array( '321' => array('title' => 'item1_sub2_company3'), '322' => array( 'title' => 'item2_sub2_company3', 'nodes' => array( '3221' => array('title' => 'item1_sub3_company3'), ), ), ), ), ), ), '4' => array('title' => 'Level4'),); </code>
Was ich brauche, ist, 2_company1 zu finden und die Titel wie ein Breadcrumb zu bekommen.
Level1> 2_Unternehmen1
oder wenn ich nach item1_sub3_company1 suche bekomme ich
Ebene1> 3_Unternehmen1> Element1_Unternehmen1
Was ich bisher gemacht habe, aber nicht funktioniert:
<code> function breadcrumb($array, $needle) { $path = array(); $array_iterator = new recursiveArrayIterator($array); $it = new recursiveIteratorIterator($array_iterator, RecursiveIteratorIterator::SELF_FIRST); foreach($it as $key => $value) { echo "$key: $value <br>"; if (!is_array($value)) { array_push($path, $value); } if ($value === $needle) { break; } } //$content = '<div id="breadcrumb">' . implode(' > ', $path) . '</div>'; return print_r($path, 1); } </code>
Danke dir