in_array
(PHP 4, PHP 5, PHP 7, PHP 8)
Checks if a value exists in an array
Description
Searches for needle in haystack using loose comparison unless strict is set.
Parameters
needleThe searched value.
NoteIf
needleis a string, the comparison is done in a case-sensitive manner.haystackThe array.
strictIf the third parameter
strictis set to true then thein_array()function will also check the types of theneedlein thehaystack.NotePrior to PHP 8.0.0, a non-numeric
stringneedlewould loosely match ahaystackvalue of0, and vice versa. As of PHP 8.0.0, the number is converted to astringand the two are compared as strings, so only a numericstringof the same value still matches.Non-strict mode nonetheless uses loose comparison, so values of different types can still compare as equal: true matches any truthy
string, and false matches both""and"0". Unless the types of all values involved are known with certainty, always passstrictto force an identity comparison.
Return Values
Returns true if needle is found in the array, false otherwise.
Examples
in_array() example
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>The second condition fails because in_array() is case-sensitive, so the program above will display:
Got Irixin_array() with strict example
<?php
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) {
echo "'12.4' found with strict check\n";
}
if (in_array(1.13, $a, true)) {
echo "1.13 found with strict check\n";
}
?>The above example will output:
1.13 found with strict checkin_array() with an array as needle
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' was found\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' was found\n";
}
if (in_array('o', $a)) {
echo "'o' was found\n";
}
?>The above example will output:
'ph' was found
'o' was found