关于正确使用PHP的in_array数组
官方实例
- 在数组中搜索值 “Mark” ,并输出一些文本:
<?php
$people = array("Bill", "Steve", "Mark", "David");
if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}
?>
运行实例
匹配已找到
今天在公司写代码的时候突然用到了in_array()函数,就是为了搜索数组中是否存在指定的值。现提取部分代码如下:
<?php
//判断某定制产品是否在数组中
$search = "68226:dscsdsdgwsdggocs"; //某定制产品
$data = array(
39578,68226,48257
);
if(in_array($search,$data)){
echo "匹配已找到";
}else{
echo "匹配未找到";
}
?>
运行结果
匹配已找到
后来我查看了一下文档,还有第三个参数(可选参数)。
语法
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那么就相当于使用===来进行比较,所以我们应该根据当前的环境来进行判断第三个参数是否进行填写。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 局部变量能否和全局变量重名
- 下一篇: linux定时执行php脚本