Maik W. aus E.: array rekursiv duechsuchen - Fortsetzung

Beitrag lesen

Tach zusammen,

Hier fragte ich nach der Möglichkeit, mein Array rekrusiv nach Werten zu durchsuchen. dedlfix gab mir gute Tips, nur bei der Ausführung hakt es noch...

hier nochmal ein Ausschnitt des Arrays:

  
$entries = array (  
  array (  
  'href'  => 'nachrichten',  
  'text'  => 'Nachrichtenarchiv',  
  'title' => 'Sammlung älterer Nachrichten'  
  ),  
  array (  
  'href'  => 'ueber_uns',  
  'text'  => 'Über uns',  
  'title' => '',  
   array (  
   'href'  => 'auftrag',  
   'text'  => 'Auftrag und Ziel',  
   'title' => '',  
   ),  
   array (  
   'href'  => 'ansprechpartner',  
   'text'  => 'Mitarbeiter',  
   'title' => '',  
   ),  
  
  ),  
  
  array (  
  'href'  => 'termine',  
  'text'  => 'Termine',  
  'title' => 'Unsere Terminkalender',  
   array (  
   'href'  => 'eigene',  
   'text'  => 'Eigene Veranstaltungen',  
   'title' => '',  
   ),  
   array (  
   'href'  => 'partner',  
   'text'  => 'Veranstaltungen mit Partnern',  
   'title' => '',  
   ),  
  ),  
  array (  
  'href'  => 'presse',  
  'text'  => 'Presse',  
  'title' => 'Informationspool für Journalisten',  
   array (  
   'href'  => 'meldungen',  
   'text'  => 'Meldungen',  
   'title' => 'Archiv aller Pressemeldungen',  
   ),  
   array (  
   'href'  => 'pressemappe',  
   'text'  => 'Pressemappe',  
   'title' => '',  
   ),  
   array (  
   'href'  => 'archiv',  
   'text'  => 'Bildarchiv',  
   'title' => 'Bildmaterial',  
   ),  
  ),  
            );  

Hier nun die Funktion, die ich gebaut habe:

  
function mwe_search($haystack, $needle, $searchKey = null, $path = '', $sep = '/'){  
  
 foreach($haystack as $key =>$value){  
  
  if (is_array($value)) {  
     $path .= $sep. $value['href'];  
                  $searchKey = $key;  
   mwe_search($value,$needle, $path='' );  
  
  
  }else{//ist kein Array  
   if(!$searchKey==null){  
  
  if($searchKey== $key){  
     if($value==$needle){  
      return $path;  
   }else{//value gleich needle zu  
      return false;  
   }  
  
    }else{//wenn searchkey gleich key  
     if($value==$needle) {  
      return $path;  
     }else{  
     return false;  
     }  
    }  
   }//if not searchkey zu  
  
  }//else isarray zu  
 }//foreach zu  
  
  
  
}//funktion zu  

Auf der ersten Ebene klappt es, da zuckt die Funktion, wenn der gesuchte Wert gefunden wird; ich kämpfe aber noch damit, den Pfad richtig zusammenzusetzen und die Funktion richtig rekursiv aufzurufen. Kann da mal jemand nachsehen?

Danke und

http://www.gruss-aus-essen.de

Maik

--
Diese Dauerleihgabe wird Ihnen präsentiert von ROMY!
Maik. W. aus E. sagt Dankeschön ;-)