(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