Mailinglisten-Archive |
Marcus Schwarz wrote: > Daher die Frage: welche Alternative war das noch gleich? Funktion selber programmieren... +++ Code +++ // boolean my_in_array ( mixed $needle, array $haystack) function my_in_array($needle, $haystack) { # Korrekt aufgerufen? if (""==$needle || !is_array($haystack) || 0==count($haystack)) return false; if (is_array($needle)) { # Arrays werden miteinander verglichen $flag_gefunden = false; reset($needle); while (list($k, $v)=each($needle)) if (my_in_array($v, $haystack)) { $flag_gefunden = true; break; } return $flag_gefunden; } else { # Nadel ist kein Array, einfache Überprüfung reset($haystack); while (list($k, $v)=each($haystack)) if ($v==$needle) return true; } } // end func my_in_array +++ Erklärung +++ # Korrekt aufgerufen: Prüft ob die Funktion mit Argumenten aufgerufen wurde, die sie verarbeiten kann. Traue keinem, nicht mal Dir selbst.... # Arrays werden miteinander verglichen Falls die Needle ein Array ist, erfolgt ein rekursiver Durchlauf durch alle Elemente. Sobald eine Übereinstimmung festgestellt wird, wird die Funktion mit return beendet. Bei extrem großen Arrays könnte ein stack Überlauf entstehen. Dies ist jedoch sehr unwahrscheinlich. # Nadel ist kein Array, einfache Überprüfung Das ist einfache... Ulf -- Ulf Wendel NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive