Will man überprüfen ob ein Wert/String in einem Array vorhanden ist, ist die einfachste Methode in_array. z.B.:
$needle = 1;
$haystack = array(1, 2, 3);
if (in_array($needle, $haystack)) {
echo 'ok';
}
// Ausgabe: ok
Obwohl in_array auch mit Arrays als needle funktioniert, liefert dieses Beispiel keine Ausgabe:
$needle = array(1,2);
$haystack = array(1, 2, 3);
if (in_array($needle, $haystack)) {
echo 'ok';
}
Denn es wird in dem haystack-Array nach einem Array mit den gleichen Inhalten und nicht nach den einzelnen Werten des needle-Arrays gescucht.
Will man das überprüfen funktioniert das mit array_intersect so:
$needle = array(1,2);
$haystack = array(1, 2, 3);
if (array_intersect($needle, $haystack)) {
echo 'ok';
}
// Ausgabe: ok