我们来检查in_array中指定的值是否存在于数组中!
PHP 有一个方便的函数,用于检查给定值是否存在于数组中。
本章中主要讲解in_array函数的以下两个内容
- in_array 函数的基本用法
- 如何使用 in_array 函数
什么是 in_array 函数
使用in_array函数检查数组中是否存在指定的值。
in_array 函数说明如下。
bool in_array ( $ value , $ array [, bool $strict = FALSE ] )
参数:第一个参数指定要搜索的值,第二个参数指定目标数组。
※如果将TRUE指定为第三个参数,将严格检查要搜索的值的类型。
换句话说,如果指定第三个参数,如果比较字符串类型编号和整数值编号,则为假,因为类型不同。
返回:如果在目标数组中找到搜索到的值,则返回“TRUE”,否则返回“FALSE”。
如何使用 in_array 函数
让我们在这里看看如何使用in_array函数!
下面是使用 in_array 函数检查数组中是否存在指定值的示例。
fruits = [
'apple',
'orange',
'melon',
'banana',
'pineapple'];
//数组中是否存在指定的值?
var_dump(in_array('orange', $fruits));
var_dump(in_array('strawberry', $fruits));
执行结果:
bool(true)
bool(false)
第1次,返回 TRUE,因为第一个 in_array指定数组中存在的“orange” 。
第2次,返回 FALSE,因为 in_array在指定的数组中不存在的 ‘strawberry’ 。
另外,in_array 函数的返回值是 boolean 类型的值,因此也可用于根据if 语句等判断进行分支处理的情况。下面是在 if 语句中使用 in_array 函数来分支处理的示例。
// 创建一个数组
$fruits = [
'apple',
'orange',
'melon',
'banana',
'pineapple'];
//存在性检查
if (in_array('orange', $fruits)){
echo 'orange存在<<br>';
}
if (!in_array('strawberry', $fruits)){
echo 'strawberry不存在';
}
执行结果:
orange存在
strawberry不存在
检查值的类型
in_array 函数对于检查数组值很有用,但有一些注意事项。
例如,如果在包含数字类型和字符串类型的数组中搜索相同的值,则in_array 函数将返回 TRUE。
因此,为了严格检查要搜索的值的类型,需要指定 TRUE 作为第三个参数。
另请注意,in_array 函数严格区分大小写。
$array = [null, false, '10', 20, 'Apple', ];
in_array(null, $array); //true
in_array(false, $array); //true
in_array(10, $array); //true
in_array('20', $array); //true
in_array('apple', $array); //false
in_array(null, $array, true); //true
in_array(false, $array, true); //true
in_array(10, $array, true); //false
in_array('20', $array, true); //false
in_array('apple', $array, true); //false
如果要用in_array函数进行准确校验,建议第三个参数strict指定为TRUE。
指定要检查的值在一个数组中
如果要检查多维数组中指定的数组是否存在,也可以指定数组作为搜索第一个参数的值。
下面的多维数组中是否存在存放指定值的数组?这里有一些样本要检查。
// 创建一个数组
$fruits = array(
array('apple', 'orange'),
array('melon', 'banana'),
'pineapple');
// 创建一个数组来检查值
$array1 = ['apple', 'orange'];
$array2 = ['melon', 'orange'];
// 数组中是否存在指定的值?
var_dump(in_array($array1, $fruits));
var_dump(in_array($array2, $fruits));
执行结果:
bool(true)
bool(false)
返回指定值的键(array_search)
在这里,我们将介绍array_search函数,它类似于 in_array 函数。
array_search 函数返回指定值的键(如果存在)。
array_search ( $ value, $ arrayname [, bool $strict = FALSE ])
参数:第一个参数指定要搜索的值,第二个参数指定目标数组。
如果将 TRUE 指定为第三个参数,将严格检查要搜索的值的类型。
返回:如果在目标数组中找到搜索到的值,则返回键。否则返回 FALSE。
下面是使用 array_search 函数搜索目标值并返回键的示例。
$fruits = [
'item1' =>'apple',
'item2' =>'orange',
'item3' =>'melon'
];
$key = array_search('orange', $fruits);
echo $key;
実行結果:
item2
如上图,如果数组中存在array_search第一个参数指定的值,可以看到可以获取到该值的key!
对于那些想了解更多关于数组的人
下面是array相关的函数,我们会在以后的课程中逐步给大家介绍。
array_sum 函数
array_unique 函数
array_values函数
array_keys 函数
array_filter 函数
array_map 函数
array_push 函数
array_key_exists 函数
array_pad 函数
implode函数
in_array 函数对于检查数组元素是否存在指定值非常有用,所以让我们借此机会记住它。