PHP函数之in_array,检查数组中是否存在指定的值
PHP语言支持很多内置函数来操作数组,其中一个非常常用的函数是in_array,它的作用是检查一个值是否在一个数组中存在,如果存在则返回true,否则返回false。
in_array语法:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
参数说明:
needle: 要查找的值。注意如果needle是字符串,那么查找是区分大小写的。
haystack: 要搜索的数组。
strict: 如果该参数设置为true,in_array函数在比较值的类型时会进行严格比较,即不仅需值相等,而且类型也要相等。默认为false。
in_array用法示例:
假如我们有一个数字数组,我们想知道数字3是否在这个数组中,这时可以使用in_array函数来帮助我们完成这个任务。
例1:基本使用方式
<?php
$arr = array(1, 2, 3, 4, 5);
if (in_array(3, $arr)) {
echo "3 is in the array";
} else {
echo "3 is not in the array";
}
?>
参照以上代码您可以得到结果如下:
输出结果:
3 is in the array
以上代码中,我们定义一个数字数组$arr,然后使用in_array函数来检查数字3是否在这个数组中,因为数字3确实在这个数组中,所以我们得到的结果是"3 is in the array"。
例2:使用第三个参数设置进行严格比较
<?php
$arr = array("3", "4", "5");
if (in_array(3, $arr, true)) {
echo "'3' is in the array with strict compare";
} else {
echo "'3' is not in the array with strict compare"; //output
}
?>
参照以上代码您可以得到结果如下:
输出结果:
'3' is not in the array with strict compare
以上代码中,我们定义了一个字符串数组$arr,然后使用in_array函数来检查数字3是否在这个数组中,因为数字3不是字符串,所以在默认情况下in_array不能正常工作,这时需要传递第三个参数true,这样in_array会执行严格比较,保证3是数字类型的,与数组中的值"3"不同,从而返回false。
注意:在进行严格比较时,数字类型的值3与字符串类型的值"3"是不相等的,所以如果您想要匹配两个值,应该将它们转化为同一种类型然后再进行比较。
总结:
in_array函数是非常常用的PHP数组函数,它可以帮助我们快速地检查一个值是否在一个数组中存在,使用起来非常方便。在实际应用中,如果您经常需要检查一个值是否在一个数组中,那么in_array函数一定会成为您的必备工具之一。
