Funktion array_search() wird nicht erkannt.
Danny Lupo
- php
Hallo!
Ich werkele hier gerade kräftig an einem Poll/Voting/Survey/Umfrage-Script herum.
Dabei stoße ich auf folgendes Problem:
Die Funktion array_search(), die mir eigentlich zuverlässig den Schlüssel des Elements als Ergebnis zurückgeben sollte funktioniert bie mir nicht. Es scheint folgende Fehlermeldung:
Fatal error: Call to undefined function: array_search() in ... on line ...
Nach SelfPHP von von Damir Enseleit sollte es nach http://www.selfphp.info/funktionsreferenz/array_funktionen/array_search.php eigentlich gehen.
Ich bitte um schnelle Hilfe und eventueller Alternativmöglichkeiten zu der Funktion und bedanke mich schonmal im Voraus für die Unterstützung.
Euer Danny.
Hallo,
Nach SelfPHP von von Damir Enseleit sollte es nach http://www.selfphp.info/funktionsreferenz/array_funktionen/array_search.php eigentlich gehen.
Welche Version von PHP verwendest Du denn? array_seach wird erst ab PHP 4.0.5 unterstützt (siehe http://www.php.net/manual/en/function.array-search.php).
Ich bitte um schnelle Hilfe und eventueller Alternativmöglichkeiten zu der Funktion und bedanke mich schonmal im Voraus für die Unterstützung.
Alternativen - Hmmm. Ab PHP Version 4 könntest Du in_array verwenden, das liefert aber nur zurück, OB es den Wert gibt, aber nicht, welchen Schlüssel er hat (http://www.php.net/manual/en/function.in-array.php)
Sonst könntest Du ihn manuell abarbeiten (ist aber langsamer als die Funktion array_search):
Für PHP3:
------------- schnipp ----------------
function array_search ($needle, $haystack) {
if (!is_array ($haystack))
return FALSE;
while (list($key, $val) = each($haystack)) {
if ($val == $needle)
return $key;
}
return FALSE;
}
------------- schnapp ----------------
Für PHP4:
------------- schnipp ----------------
function array_search ($needle, $haystack) {
if (!is_array ($haystack))
return FALSE;
foreach ($haystack as $key => $val) {
if ($val == $needle)
return $key;
}
return FALSE;
}
------------- schnapp ----------------
Grüße,
Christian
Hallo!
Danke für die ausgiebige Antwort.
Ich hab aber auf den ersten Blick eine bessere Alternative gefunden.
Die Funktion strpos() sollte es auch tun.
Grüße, der Danny