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() 例子

实例代码如下:

  1. <!–?php 
  2. $search_array = array('first' => 1, 'second' => 4); 
  3. if (array_key_exists('first'$search_array)) { 
  4.     echo "The 'first' element is in the array"
  5. ?> 

Example #2 array_key_exists() 与 isset() 的对比isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会.

实例代码如下:

  1. <!–?php 
  2. $search_array = array('first' => null, 'second' => 4); 
  3. // returns false 
  4. isset($search_array['first']); 
  5. // returns true 
  6. array_key_exists('first'$search_array); 
  7. ?> 

mixed array_search ( mixed $needle, array $haystack [, bool $strict] )第一个参数是需要查找的值,第二个参数是数组,最后一个参数是指查找的时候是否检查数据类型是否相同.

实例代码如下:

  1. <!–?php 
  2. $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); 
  3. echo array_search("Dog",$a); 
  4. ?> 
  5. <!–?php 
  6. $a=array("a"=>"5","b"=>5,"c"=>"5"); 
  7. echo array_search(5,$a,true); 
  8. ?> 

上述代码将输出下面的结果:

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完全循环一遍的话是否有更高效的算法?

实例代码如下:

  1. $result = array(); 
  2. for($i = 501; $i < 600; $i++) { 
  3.     if(!isset($arr[$i])) continue
  4.     $result[] = $arr[$i]; 

 

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php 查找数组值程序

2 评论

  1. Thank you great posting about essential oil. Hello Administ . Metropol Halı Karaca Halı Öztekin ve Selçuklu Halı Cami Halısı ve Cami Halıları Türkiye’nin En Büyük Cami Halısı Fabrikasıyız…

  2. Great post thank you. Hello Administ .

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡