php 查找数组值程序
在php中查找数组中指定值的方法有很多,下面我来介绍php中数组查找函数in_array(),array_key_exists(),array_search()用法 查找一个元素是否在数组中,一共有上面三种做法: in_array '函数在数组中搜索给定的值.in_array(value,array,type)type 可选.如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同. array_key_exists 'array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false.array_key_exists(key,array)Example #1 array_key_exists() 例子 实例代码如下:
Example #2 array_key_exists() 与 isset() 的对比isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会. 实例代码如下:
mixed array_search ( mixed $needle,array $haystack [,bool $strict] )第一个参数是需要查找的值,第二个参数是数组,最后一个参数是指查找的时候是否检查数据类型是否相同. 实例代码如下:
上述代码将输出下面的结果: b 从这里来看,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为瓶颈; 当数据量比较大的时候,用array_key_exists比较合适.当然这里array_key_exists占用的内存比较大,经测算数组结构是: array(1,2,3,..)和 array(1 => true,2 => false,..) 他们内存使用比值为1:2; 注意:array_key_exist,要比in_array效率高十几甚至几十倍一个简单的算法.假设数组有1000个元素,键值为小于1000000的无序的正整数,且不连续,如下 $arr = array(1 => 'sadas',20 => 'aasd',5002 => 'fghfg',190023 => 'rty',248 => 'kj',76 => 'sddd',...); 现在要获取数组$arr中键的值大于500小于600的元素,不用foreach完全循环一遍的话是否有更高效的算法? 实例代码如下:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |