关于正确使用PHP的in_array数组

in_array数组误区


官方实例

  • 在数组中搜索值 “Mark” ,并输出一些文本:


运行实例

匹配已找到

今天在公司写代码的时候突然用到了in_array()函数,就是为了搜索数组中是否存在指定的值。现提取部分代码如下:


运行结果

匹配已找到

后来我查看了一下文档,还有第三个参数(可选参数:强制对数据类型进行检测)。

关于正确使用PHP的in_array数组_第1张图片

语法

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

参数 描述
needle 必需。规定要在数组搜索的值。
haystack 必需。规定要搜索的数组。
strict 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

说明

如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。

如果没有在数组中找到参数,函数返回 false。

注释:如果 search 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。

总结

第三个参数默认为 false,当 needle 和 haystack 中的元素比较时会进行类型转换,相当于使用 == 进行比较。如果我们填写第三个参数为true那么就相当于使用===来进行比较,所以我们应该根据当前的环境来进行判断第三个参数是否进行填写。

关于正确使用PHP的in_array数组_第2张图片

你可能感兴趣的:(日常小结)