Tach auch dedlfix,
Du hast also von meinem Vorschlag die Variante b versucht umzusetzen. Dabei verlässt du die Funktion zu schnell. Sie darf nur dann ein false liefern, wenn das Array ergebnislos durchlaufen wurde. Deine Version läuft auf ein return false; sobald der Vergleich misslang. Die weiteren Array-Elemente kommen nun nicht mehr zum Zug.
Deswegen...
Außerdem darfst du $path nicht verändern, sondern nur einen String übergeben, der aus seinem Inhalt plus dem neuen Pfad-Teil besteht.
Hier mal meine Version:
function mwe_search($haystack, $needle, $searchKey = null, $path = '', $sep = '/'){
foreach($haystack as $key =>$value) {
if (is_array($value)) {
if ($result = mwe_search($value,$needle, $searchKey, $path . $sep . $value['href'])) // Zuweisung, kein Vergleich
return $result;
} else {
if ($searchKey !== null) {
if (($searchKey == $key) and ($value == $needle))
return $path;
} elseif ($value == $needle)
return $path;
} //else isarray zu
} //foreach zureturn false;
} //funktion zu
Perfekt! Das ist es! Genau so muß es funktionieren! Herzlichen Dank, mir fällt ein echter Brocken vom Herzen; Du hast nicht zufällig eine Amazon-Wunschliste?
Danke und
<http://www.gruss-aus-essen.de>
Maik
--
![Diese Dauerleihgabe wird Ihnen präsentiert von ROMY!](http://www.gruss-aus-essen.de/selfforum/totes_huhn.jpg)
Maik. W. aus E. sagt Dankeschön ;-)