mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
strict
如果可选的第三个参数 strict 为 true,则 array_search() 将在 haystack 中检查完全相同的元素。 这意味着同样检查 haystack 里 needle 的 类型,并且对象需是同一个实例。
问题:
这个函数,第3个参数:$strict = false,有什么作用?
给个实例。
回复讨论(解决方案) 如手册中所说一样,当第三个参数为true的时候,则要检查值的类型
如手册中所说一样,当第三个参数为true的时候,则要检查值的类型
给个实例!
q1,1=>q2,2=>q3,3=>q2,4=>q2,5=>q2); $y=array_search(q2,$x); echo $y; echo \r\n; $xx=array(0=>q1,1=>q2,2=>q3,3=>q2,4=>q2,5=>q2); $yy=array_search(q2,$xx,$strict =false); echo $yy; echo \r\n; $xxx=array(0=>q1,1=>q2,2=>q3,3=>q2,4=>q2,5=>q2); $yyy=array_search(q2,$xxx,$strict =true); echo $yyy; echo \r\n;?>
上面的代码加了参数:,$strict =true或,$strict =false
没什么区别?
q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$y=array_search(2,$x);echo $y;echo ;$xx=array(0=>q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$yy=array_search(2,$xx,$strict =false);echo $yy;echo ;$xxx=array(0=>q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$yyy=array_search(2,$xxx,$strict =true);echo $yyy;echo ;$xxxx=array(0=>q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$yyyy=array_search(2,$xxx,$strict =true);echo $yyyy;echo ;
我把q2换成2.。然后分别用false 和 true来输出。。第三个是不输出的。。为true时是类型和值都得一样。但第三个是检查“2”。。而数组中的是2,。类型不同所以没输出,打印的话就为false。。为false时忽略类型,所以二个有输出
$ar = array(1, 2, 3);var_dump(array_search('2', $ar, true)); //bool(false)var_dump(array_search(2, $ar)); //int(1)
$a = array(a=>5,b=>5);
echo array_search(5,$a);不用判断值的类型 所以字符串5 匹配成功
echo '
';
echo array_search(5,$a,true);需要判断值的类型 所以字符串5 匹配不成功 数字5匹配成功
q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$y=array_search(2,$x);echo $y;echo ;$xx=array(0=>q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$yy=array_search(2,$xx,$strict =false);echo $yy;echo ;$xxx=array(0=>q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$yyy=array_search(2,$xxx,$strict =true);echo $yyy;echo ;$xxxx=array(0=>q1,1=>q2,2=>q3,3=>2,4=>q2,5=>q2);$yyyy=array_search(2,$xxx,$strict =true);echo $yyyy;echo ;
我把q2换成2.。然后分别用false 和 true来输出。。第三个是不输出的。。为true时是类型和值都得一样。但第三个是检查“2”。。而数组中的是2,。类型不同所以没输出,打印的话就为false。。为false时忽略类型,所以二个有输出
正常!
$ar = array(1, 2, 3);var_dump(array_search('2', $ar, true)); //bool(false)var_dump(array_search(2, $ar)); //int(1)
in_array()函数,第3个参数,也是这样作用?
手册中有:如果第三个参数 strict 的值为 true 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
为什么都不看呢?神仙?
$ar = array(1, 2, 3);var_dump(array_search('2', $ar, true)); //bool(false)var_dump(array_search(2, $ar)); //int(1)
in_array()函数,第3个参数,也是这样作用?