How do you check if an array has a value in php?

(PHP 4, PHP 5, PHP 7, PHP 8)

in_arrayChecks if a value exists in an array

Description

in_array(mixed $needle, array $haystack, bool $strict = false): bool

Parameters

needle

The searched value.

Note:

If needle is a string, the comparison is done in a case-sensitive manner.

haystack

The array.

strict

If the third parameter strict is set to true then the in_array() function will also check the types of the needle in the haystack.

Note:

Prior to PHP 8.0.0, a string needle will match an array value of 0 in non-strict mode, and vice versa. That may lead to undesireable results. Similar edge cases exist for other types, as well. If not absolutely certain of the types of values involved, always use the strict flag to avoid unexpected behavior.

Return Values

Returns true if needle is found in the array, false otherwise.

Examples

Example #1 in_array() example

$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:

Example #2 in_array() with strict example

$a = array('1.10'12.41.13);

if (

in_array('12.4'$atrue)) {
    echo 
"'12.4' found with strict check\n";
}

if (

in_array(1.13$atrue)) {
    echo 
"1.13 found with strict check\n";
}
?>

The above example will output:

1.13 found with strict check

Example #3 in_array() with an array as needle

$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

See Also

  • array_search() - Searches the array for a given value and returns the first corresponding key if successful
  • isset() - Determine if a variable is declared and is different than null
  • array_key_exists() - Checks if the given key or index exists in the array

beingmrkenny at gmail dot com

10 years ago

Loose checking returns some crazy, counter-intuitive results when used with certain arrays. It is completely correct behaviour, due to PHP's leniency on variable types, but in "real-life" is almost useless.

The solution is to use the strict checking option.

// Example array$array = array(
   
'egg' => true,
   
'cheese' => false,
   
'hair' => 765,
   
'goblins' => null,
   
'ogres' => 'no ogres allowed in this array'
);// Loose checking -- return values are in comments

// First three make sense, last four do not

in_array(null, $array); // true
in_array(false, $array); // true
in_array(765, $array); // true
in_array(763, $array); // true
in_array('egg', $array); // true
in_array('hhh', $array); // true
in_array(array(), $array); // true

// Strict checking

in_array(null, $array, true); // true
in_array(false, $array, true); // true
in_array(765, $array, true); // true
in_array(763, $array, true); // false
in_array('egg', $array, true); // false
in_array('hhh', $array, true); // false
in_array(array(), $array, true); // false?>

rhill at xenu-directory dot net

13 years ago

I found out that in_array will *not* find an associative array within a haystack of associative arrays in strict mode if the keys were not generated in the *same order*:

$needle

= array(
   
'fruit'=>'banana', 'vegetable'=>'carrot'
   
);$haystack = array(
    array(
'vegetable'=>'carrot', 'fruit'=>'banana'),
    array(
'fruit'=>'apple', 'vegetable'=>'celery')
    );

echo

in_array($needle, $haystack, true) ? 'true' : 'false';
// Output is 'false'echo in_array($needle, $haystack) ? 'true' : 'false';
// Output is 'true'?>

I had wrongly assumed the order of the items in an associative array were irrelevant, regardless of whether 'strict' is TRUE or FALSE: The order is irrelevant *only* if not in strict mode.

thomas dot sahlin at gmail dot com

13 years ago

If you're creating an array yourself and then using in_array to search it, consider setting the keys of the array and using isset instead since it's much faster.

$slow

= array('apple', 'banana', 'orange');

if (

in_array('banana', $slow))
    print(
'Found it!');$fast = array('apple' => 'apple', 'banana' => 'banana', 'orange' => 'orange');

if (isset(

$fast['banana']))
    print(
'Found it!');?>

How do you check if an array contains a value?

JavaScript Array includes() The includes() method returns true if an array contains a specified value. The includes() method returns false if the value is not found.

How do you check if a array contains a specific word in PHP?

You can use the PHP strpos() function to check whether a string contains a specific word or not. The strpos() function returns the position of the first occurrence of a substring in a string. If the substring is not found it returns false . Also note that string positions start at 0, and not 1.

How check array is empty or not in PHP?

Using count Function: This function counts all the elements in an array. If number of elements in array is zero, then it will display empty array. ... .
Using sizeof() function: This method check the size of array. If the size of array is zero then array is empty otherwise array is not empty..

What is PHP function Array_keys () used for?

The array_keys() is a built-in function in PHP and is used to return either all the keys of and array or the subset of the keys. Parameters: The function takes three parameters out of which one is mandatory and other two are optional.