(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.
needle
Der gesuchte Wert.
Hinweis:
Ist
needle
ein String, so wird bei der Suche die Groß- und Kleinschreibung beachtet.
haystack
Das 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 Typstring
im nicht-strikten Modus auf einen Array-Wert von0
und 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 Flagstrict
verwendet 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