in_array — 检查数组中是否存在某个值


in_array(​​mixed​​ ​​$needle​​, array ​​$haystack​​, bool ​​$strict​​ = ​​false​​): bool


大海捞针,在大海(​​haystack​​)中搜索针( ​​needle​​),如果没有设置  ​​strict​​ 则使用宽松的比较。

参数:

​needle​

  • 待搜索的值。

注意: 

如果 ​​needle​​ 是字符串,则比较是区分大小写的。

​haystack​

  • 待搜索的数组。

​strict​

  • 如果第三个参数 strict
     的值为 ​​true​​ 则 in_array() 函数还会检查 needle
     的​​类型​​是否和 haystack
     中的相同。

 

1、一维数组判断是否存在某个值



<?php


$a = array(1 , 2, 3, 4, 5);

echo in_array(5, $a);


// string(17) "No data to reduce"
?>


 输出:



1


 

2、二维数组判断是否存在某个值



<?php


$a = array(1 => 'a', 2, 3, 4, 5, 0);
echo in_array(5, $a); // 返回1

echo in_array('a', $a); //返回1

echo in_array('', $a); //返回1
echo in_array('', $a, true); //返回0

?>


 输出: 对于二维简单的key=>value的形式,会搜索所有的键和值 例如 key:5 和值:a都会返回true;

默认为弱类型校验,设置第三个参数为true,则为强类型校验

 

3、判断的参数可以是一个混合类型,例如判断数组是否存在



<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
echo "'ph' was found\n";
}

if (in_array(array('f', 'i'), $a)) {
echo "'fi' was found\n";
}

if (in_array('o', $a)) {
echo "'o' was found\n";
}
?>


 输出:



'ph' was found
'o' was found