In this tutorial, you will learn how can easily search or find a value in a PHP array.
PHP in_array() function
The PHP in_array()
function checks the existence of the given value in an array, which means the specified value exists in the array or not.
in_array(value, array, type)
value
– The value you want to search in the array.array
– The array in which you want to find the value.type
– It is optional parameter. This parameter takes a boolean value (True) to enable the type checking. Such as – the value should be a string or number, etc.
The in_array
function returns TRUE if the value is found in the array, else it will return FALSE.
<?php
$a = [75, 'Hello', '36', 25, 45, 10.2];
var_dump(in_array(25, $a));
bool(true)
in_array() Example with type
<?php
$a = [75, 'Hello', '36', 25, 45, 10.2];
var_dump(in_array(36, $a));
// Checking the type as well
var_dump(in_array(36, $a, True));
var_dump(in_array('36', $a, True));
bool(true)
bool(false)
bool(true)
This in_array()
function won’t work if you want to find a value inside a multidimensional array.
But, it will work if an array inside an array is considered as a value.
<?php
$a = [75, ['Hello', 36], 25, 45, 10.2];
var_dump(in_array(36, $a));
var_dump(in_array(['Hello', 36], $a));
bool(false)
bool(true)
PHP in_array() with multidimensional array
As you know this function does not work with multidimensional-array, but you can achieve this by creating a recursive function.
<?php
function my_in_array($value, $array, $strict = false)
{
foreach ($array as $item) {
if (($strict ? $item === $value : $item == $value) || (is_array($item) && my_in_array($value, $item))) {
return true;
}
}
return false;
}
$a = [75, ['Hello', 36], 25, 45, 10.2];
var_dump(my_in_array(36, $a));
bool(true)
PHP get array key by value
If you want to get the key or index number of any value of an array in PHP, you need to use the array_search()
function.
The array_search()
function is similar to the in_array()
function, but this function returns the key or index number of the value if the value is found in the array, else it will return FALSE.
<?php
// 0 1 2 3
$a = ['PHP', 'Node.Js', 'Python', 'Java'];
var_dump(array_search('Python', $a));
// C++ is not in the array
var_dump(array_search('C++', $a));
int(2)
bool(false)