(PHP 4, PHP 5, PHP 7, PHP 8)
in_array — Prüft, ob ein Wert in einem Array existiert
Diese Funktion sucht in haystack nach
needle. Wenn strict gesetzt
ist, wird dabei auch der Typ des Elements beachtet.
needleDer gesuchte Wert.
Hinweis:
Ist
needleein String, so wird bei der Suche die Groß- und Kleinschreibung beachtet.
haystackDas zu durchsuchende Array.
strict
Wenn der dritte Parameter auf true gesetzt wird, vergleicht
in_array() nicht nur den Wert, sondern auch
den Typ des gesuchten
Wertes needle mit den Elementen des
Arrays.
Hinweis:
Vor PHP 8.0.0 passt ein
needle-Wert vom Typstringim nicht-strikten Modus auf einen Array-Wert von0und umgekehrt. Das kann zu unerwünschten Ergebnissen führen. Ähnliche Grenzfälle gibt es auch für andere Typen. Wenn nicht absolut sicher ist, um welche Art von Werten es sich handelt, sollte immer das Flagstrictverwendet werden, um ein unerwartetes Verhalten zu vermeiden.
Beispiel #1 in_array()-Beispiel
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Irix enthalten";
}
if (in_array("mac", $os)) {
echo "mac enthalten";
}
?>Der zweite Vergleich schlägt fehl, da in_array() Groß- und Kleinschreibung unterscheidet, die Ausgabe sieht daher so aus:
Irix enthalten
Beispiel #2 in_array()-Beispiel mit 'strict'
<?php
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) {
echo "'12.4' bei strenger Prüfung gefunden\n";
}
if (in_array(1.13, $a, true)) {
echo "1.13 Bei strenger Prüfung gefunden\n";
}
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
1.13 bei strenger Prüfung gefunden
Beispiel #3 in_array() mit Array als Suchwert
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' gefunden\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' gefunden\n";
}
if (in_array('o', $a)) {
echo "'o' gefunden\n";
}
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
'ph' gefunden 'o' gefunden