【奇奇怪怪】PHP中数组及数组函数的一些小技巧
1.PHP中array_search()只会返回第一个匹配的值的key,要想返回所有匹配值的key请使用array_keys(),举个栗子:
<?php //php中array_search只会返回第一个匹配的值的key,要想返回所有匹配值的key请使用array_keys //栗子? $array=array('one'=>'kiwi','two'=>'qingwei','three'=>'tech','four'=>'qingwei','five'=>'love'); var_dump(array_search('qingwei',$array));//string(3) "two" var_dump(array_keys($array,'qingwei'));//array(2) { [0]=> string(3) "two" [1]=> string(4) "four" }
2.PHP中,在判断一个数组的键是否存在时,不应使用isset(),而应该使用array_key_exists(),举个栗子:
<?php //php中,在判断一个数组的键是否存在时,不应使用isset(),而应该使用array_key_exists $array=array('isnull'=>null); var_dump(isset($array['isnull']));//bool(false) var_dump(array_key_exists('isnull',$array));//bool(true)
3.PHP中,in_array()函数是一种弱类型比较,若需要强类型比较,请指定第三个参数为ture,这样还可以大大提高程序的性能,举个栗子:
<?php //php中,in_array()函数是一种弱类型比较,若需要强类型比较,请指定第三个参数为ture,这样还可以大大提高程序的性能 $str='qingwei.tech'; $array=[0,1,2,3,4,5]; var_dump(in_array($str,$array));//bool(true) var_dump(in_array($str,$array,true));//bool(false)
4.PHP中,建立key为数字字符串的数组,举个栗子:
<?php //php建立key为数字字符串的数组 $array=new StdClass(); $key=11; $array->$key='hehe'; var_dump(['11'=>'haha']);// array(1) { [11]=> string(4) "haha" } var_dump($array);//object(stdClass)#1 (1) { ["11"]=> string(4) "hehe" }
*关于StdClass请参考这里
5.PHP中,函数的返回值为数组的时候,赋值不会重置数组内部指针,举个栗子:
<?php //php中,函数的返回值为数组的时候,赋值不会重置数组内部指针 function back() { $array=[1,2,3,4]; foreach ($array as $key){} return $array; } $arr=back(); var_dump(current($arr));//bool(false)
6.PHP中,赋值引发的死循环,往往是因为数组内部的指针被重置了,举个栗子:
<?php //php中,赋值引发的死循环,往往是因为数组内部的指针被重置了 $array=array('hello','qingwei.tech'); while($word=each($array)) { var_dump($word['value']); $x=$array;//关键在这里 }
7.PHP中,array_diff()和array_unipue()函数都是比较数组元素的string值,'(string)[]'->'Array',因此用于多维数组是没有意义的,举个栗子:
<?php //php中,array_diff()和array_unipue()函数都是比较数组怨毒的string值,'(string)[]'->'Array',因此用于多维数组是没有意义的 error_reporting(E_ALL); $array=[[1],[2]]; var_dump(array_unique($array)); var_dump(array_diff($array));
PS:如果你觉得本站内容对你有帮助,不如把本站收藏到你的收藏夹,以便下次查看~也欢迎在下方分享点赞以及发言讨论~
版权声明:
作者:Kiwi
链接:https://www.qingwei.tech/programe-develops/587.html
来源:清渭技术小站
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论