PHP in_array

PHP Arrays, one of the interesting topic in PHP, in learning part of view, since, it includes several direct PHP functions to work with arrays. In this article, we took one of those functions, PHP in_array(), to learn about it in detail.

In PHP, in_array() is used to check whether a value or sub array is the part of given master array or not. If the given value or sub array is exist in the master array, then in_array() will return TRUE, or false otherwise.

php_in_array

PHP in_array Syntax and Parameters

The following syntax shown, will help us to use in_array function in a PHP program. This function includes three parameters, where the third one is optional.

in_array($data_to_search,$master_array,$strict_search_flag)

Parameters of PHP in_array() Function

  • $data_to_search – It could be a string, int, or an array. But, before PHP version 4.2.0, array data are not allowed for this first parameter of in_array().
  • $master_array – It accepts array considered as a master or collection, among which we need to search for a given data.
  • $strict_search_flag – This optional parameter will have boolean values. If TRUE this function will do strict search by comparing the data types, otherwise doing loose search, if it is FALSE.

Note:

  • Keeping the third parameter as TRUE is safe forever. Why because, if the master array contains 0, true/false or NULL as its entry, then, in_array will return unexpected results. For example,

    echo in_array('3', array(true,"one","two","three"));
    

    This program will return true, even though there is no such entry in the master array. So, strict matching will solve this problem, by keeping third parameter as TRUE.

  • Using this function, string matching will be done in case sensitive manner.

Other PHP Functions for Searching Arrays

PHP includes some other functions to search for a keyword or string over an master array as like as PHP in_array. These functions are,

  • array_key_exists()
  • array_search()

PHP Key Matching using array_key_exists()

We have seen that, PHP in_array() function returns TRUE, if there is match found between given data and the values of master array. Similarly, array_key_exists() will do the same for searching keys or indices if the master array is an associative array.

Let us check the behavior of this function by using the following PHP code.

$master_assoc_array = array("id"=>1000,"name"=>"PHP");
echo array_key_exists("name",$master_assoc_array);

In the above program, array_key_exists() will return TRUE, since, the given master associative array includes such key, as we have specified for the key search. And, if we search keys with respect to the non associative array, then we can find for numeric indices, which will be associated with each element of a PHP non associative array by default.

array_search() in PHP

This is equivalent PHP function as like as in_array(), but differs with what it is returning. If any match found between given data and values of the master array, then, PHP array_search() will return the corresponding index of the entry with which the match is found, whereas, in_array() returns boolean value TRUE, instead.

The following PHP code will return index of the given string with which it is associated in the master array.

$master_array = array("one","two","three");
echo "Array index of 'three' is " . array_search("three", $master);

Since, the given master array is an non-associative array, as per the default numeric indices associated with the element of $master_array, the PHP print statement will return the following output to the browser.

Array index of 'three' is 2

Other than returning index of the matched entry, array_search() is identical to PHP in_array, since it accepts same set of three arguments, searches in case sensitive manner and allows strict matching. So, we can use any of these functions based on the requirements, like, if we want to get key index or simply want to check if match found.

This PHP code tutorial was published on August 22, 2013.

↑ Back to Top