美文网首页PHP
PHP数组处理函数:in_array() -- 内置函数

PHP数组处理函数:in_array() -- 内置函数

作者: MangfuStudio | 来源:发表于2018-08-17 23:56 被阅读0次

所用PHP环境:7.1.16


函数简介

此函数检查数组中是否存在某个值
返回值为 布尔(boolean) 类型的值 true or false
注意: 此函数区分大小写

函数原型

bool in_array($index, $array, [,$strict]) ;

参数

$index:要检查的的值
$array:要检查的数组
$strict:可选参数,用于指定搜索模式(此函数有 松散/严格 两种搜索模式)

例子

  1. 松散搜索
<?php
$info = array('小明','男',12) ; // 创建一个保存小明各人信息的数组 数组值
$index_1 = '12' ; // 检擦值1 string
$index_2 = 12 ;   // 检擦值2 int
var_dump(in_array($index_1,$info));
var_dump(in_array($index_2,$info));
?>
//输出
D:\WampServer\www\MyPhpCode\01.php:5:boolean true
D:\WampServer\www\MyPhpCode\01.php:6:boolean true

结果分析:
保存小明个人信息的数组中有一项保存着年龄的 int 类型的数据 12
检查值与数组值对比:
..|- $index_1 的值为 string 类型的 12 , 书面值相同,数据类型不一致
..|- $index_2 的值为 int 类型的 12 ,书面值相同,数据类型一致
搜索结果中两项都为 真(true)
可以看出,松散搜索模式是不区分数据类型。

  1. 严格搜索

当 in_array() 的 $strict 参数(第三个参数)为 true 时启用严格搜索模式

$info = array('小明','男',12) ; // 创建一个保存小明各人信息的数组
$index_1 = '12' ; // 检擦值1 string
$index_2 = 12 ;   // 检擦值2 int
var_dump(in_array($index_1,$info,true)); // 启用严格搜索模式
var_dump(in_array($index_2,$info,true)); // 启用严格搜索模式
?>
// 输出
D:\WampServer\www\MyPhpCode\01.php:5:boolean false
D:\WampServer\www\MyPhpCode\01.php:6:boolean true

结果分析
沿用了第一个例子的源码,在第一个例子的基础上开启了严格搜索。
in_array($index_1,$info,true) 的结果为 false
由于 index_1 的 12 为 string 类型,与数组中的 int 类型 12 不一致,所以返回了 false
由此可以看出,在严格搜索模式中,是区分数据类型的。

搜索数组项目可以,那搜索数组中的数组(嵌套数组)可不可以呢?来尝试下

<?php
$info = array('小明','男',12,array('小明爸','小明妈')) ; // 在小明个人信息数组中嵌套一个保存小明父母名字的数组
$index = array('小明爸','小明妈') ;
var_dump(in_array($index,$info));      // 松散搜索模式
var_dump(in_array($index,$info,ture)); // 严格搜索模式
?>
// 输出
D:\WampServer\www\MyPhpCode\01.php:4:boolean true
D:\WampServer\www\MyPhpCode\01.php:5:boolean true

从输出可以看到,无论是在松散搜索模式还是严格模式中,都是可以搜索嵌套数组的,至于可不可以搜索多维数组,您自个尝试吧,我不想码字了,拜了个拜。

我就是这么可爱


@_@
不对,好像忘了什么。。。。 斯。。。。。哦!。。。。总结。对对对,总结

总结

  • in_array()区分大小写
  • 在严格模式下,搜索区分数据类型,松散模式不区分数据类型
  • 可搜索嵌套数组



b1c28d2f0708283807aea478b499a9014d08f17c.jpg

相关文章

网友评论

    本文标题:PHP数组处理函数:in_array() -- 内置函数

    本文链接:https://www.haomeiwen.com/subject/rtfxiftx.html