牛骨文教育服务平台(让学习变的简单)
博文笔记

关于正确使用PHP的in_array数组

创建时间:2017-10-06 投稿人: 浏览次数:1457

官方实例

  • 在数组中搜索值 “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 "匹配未找到";
    }
?>

运行结果

匹配已找到

后来我查看了一下文档,还有第三个参数(可选参数)。

hello world !

语法

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那么就相当于使用===来进行比较,所以我们应该根据当前的环境来进行判断第三个参数是否进行填写。

这里写图片描述

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。