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
Maik
--
Maik. W. aus E. sagt Dankeschön ;-)
Maik. W. aus E. sagt Dankeschön ;-)