Heim > Backend-Entwicklung > PHP-Tutorial > array_search()函数,第3个参数,有什么作用?

array_search()函数,第3个参数,有什么作用?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-23 14:23:29
Original
1060 Leute haben es durchsucht

http://docs.php.net/manual/zh/function.array-search.php

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
Nach dem Login kopieren


strict
如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查完全相同的元素。 这意味着同样检查 haystack 里 needle 的 类型,并且对象需是同一个实例。


问题:
这个函数,第3个参数:$strict = false,有什么作用?
给个实例。


回复讨论(解决方案)

如手册中所说一样,当第三个参数为true的时候,则要检查值的类型

如手册中所说一样,当第三个参数为true的时候,则要检查值的类型

给个实例!

<?     $x=array("0"=>"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";?>
Nach dem Login kopieren



上面的代码加了参数:,$strict =true或,$strict =false
没什么区别?

<?php$x=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>"2","4"=>"Q2","5"=>"q2");$y=array_search("2",$x);echo $y;echo "<hr>";$xx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");$yy=array_search("2",$xx,$strict =false);echo $yy;echo "<hr>";$xxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");$yyy=array_search("2",$xxx,$strict =true);echo $yyy;echo "<hr>";$xxxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");$yyyy=array_search(2,$xxx,$strict =true);echo $yyyy;echo "<hr>";
Nach dem Login kopieren
Nach dem Login kopieren


我把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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

$a = array("a"=>"5","b"=>5);
echo array_search(5,$a);不用判断值的类型 所以字符串"5" 匹配成功
echo '
';
echo array_search(5,$a,true);需要判断值的类型 所以字符串"5" 匹配不成功 数字5匹配成功


<?php$x=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>"2","4"=>"Q2","5"=>"q2");$y=array_search("2",$x);echo $y;echo "<hr>";$xx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");$yy=array_search("2",$xx,$strict =false);echo $yy;echo "<hr>";$xxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");$yyy=array_search("2",$xxx,$strict =true);echo $yyy;echo "<hr>";$xxxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");$yyyy=array_search(2,$xxx,$strict =true);echo $yyyy;echo "<hr>";
Nach dem Login kopieren
Nach dem Login kopieren


我把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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


in_array()函数,第3个参数,也是这样作用?

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage