MudGuard: return in rekursiver funktion

Beitrag lesen

Hi,

Hi,

ich habe in php.net eine kleine Funktion gefunden und sie auf meine Bedürfnisse angepasst.
Leider führt sie das return nicht richtig aus

function array_search_r($needle, $haystack)
{
   $i=0;
   while($i<count($haystack))
   {
      if(is_array($haystack[$i]))
      {
         $match=array_search_r($needle, $haystack[$i]);
//Egal was der rekursive Aufruf zurückliefert - es wird NIEMALS zurückgegeben
//hier müßte m.E. die Abprüfung auf false erfolgen und ggf. $match zurückgegeben werden.
      }
      if($haystack[$i]==$needle)
      {
//$i ist nur ein Zähler, der Werte von 0 bis count($haystack) annehmen kann
//$match ist hier also immer eine Zahl und niemals false. Die Abprüfung auf false ist sinnlos.
//die folgenden 4 Zeilen sind identisch mit return $i

$match = $i;
         if($match!==false)
         {
            return $match;
         }
      }
      $i++;
  }
  return false;
}

Ach ja, sauberes Einrücken erleichtert es ganz wesentlich, die Codestruktur zu erkennen...

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/