Tach zusammen,
ich verwende ein Array, ähnlich dem von Alexander Brock zur Darstellung einer Verzeichnisstruktur:
$entries = array (
array (
'href' => 'eins',
'text' => 'Erster Punkt',
'title' => 'Erster Punkt'
),
array (
'href' => 'zwei',
'text' => 'Zweiter Punkt',
'title' => 'Zweiter Punkt',
array (
'href' => 'zweieins',
'text' => '',
'title' => '',
),
array (
'href' => 'zweizwei',
'text' => '',
'title' => ''
),
array (
'href' => 'zweidrei',
'text' => '',
'title' => '',
),
),
array (
'href' => 'drei',
'text' => '',
'title' => '',
array (
'href' => 'dreieins',
'text' => '',
'title' => '',
),
array (
'href' => 'dreizwei',
'text' => '',
'title' => '',
),
),
);
Jetzt lasse ich einen vorgegebenen Wert von 'href' auf das Array los und möchte mittels array_search feststellen, ob mein suchbegriff darin vorkommt. Da array_search() ja keine mehrdimensionalen Arrays durchsucht, habe ich einige Beispiele der Benutzer von der Manualseite ausprobiert, um auch mehrdimensionale Array zu durchsuchen, allerdings klemmen sie alle irgendwo.. Am erfolgreichsten war noch die Funktion
function multiArraySearch($needle, $haystack){
$value = false;
$x = 0;
foreach($haystack as $temp){
$search = array_search($needle, $temp);
if (strlen($search) > 0 && $search >= 0){
$value[0] = $x;
$value[1] = $search;
}
$x++;
}
return $value;
}
allerdings kommt die nur bis zur "ersten Ebene"... Mir ist es nicht gelungen, diese Funktion rekursiv aufzurufen, vielleicht habe ich einfach zu viel herumprobiert. Erschwerend kommt hinzu, daß ich dann, wenn auch Treffer der zweiten Eben funktionieren, ich den Wert aus 'href' der übergeordneten Ebene brauche...
Kann jemand helfen?
Danke und
http://www.gruss-aus-essen.de
Maik
Maik. W. aus E. sagt Dankeschön ;-)