php 查找数组值程序
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-15 11:40:01 浏览: 评论:0
在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() 例子
实例代码如下:
- $search_array = array('first' => 1, 'second' => 4);
- if (array_key_exists('first', $search_array)) {
- echo "The 'first' element is in the array";
- }
- ?>
Example #2 array_key_exists() 与 isset() 的对比isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会.
实例代码如下:
- $search_array = array('first' => null, 'second' => 4);
- // returns false
- isset($search_array['first']);
- // returns true
- array_key_exists('first', $search_array);
- ?>
mixed array_search ( mixed $needle, array $haystack [, bool $strict] )第一个参数是需要查找的值,第二个参数是数组,最后一个参数是指查找的时候是否检查数据类型是否相同.
实例代码如下:
- $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
- echo array_search("Dog",$a);
- ?>
- $a=array("a"=>"5","b"=>5,"c"=>"5");
- echo array_search(5,$a,true);
- ?>
上述代码将输出下面的结果:
从这里来看,在数据量不大的时候,比如小于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完全循环一遍的话是否有更高效的算法?
实例代码如下:
- $result = array();
- for($i = 501; $i < 600; $i++) {
- if(!isset($arr[$i])) continue;
- $result[] = $arr[$i];
- }
Tags: in_array() array_key_exists()
- 上一篇:PHP中array_merge合并两个数组的程序
- 下一篇:PHP数组的定义与销毁
相关文章
- ·php in_array 语法(2013-11-12)
- ·php对特殊语句查询结果进行数组排序(2013-11-12)
- ·PHP中数组定义的几种方法(2013-11-13)
- ·php学习笔记 [预定义数组(超全局数组)](2013-11-13)
- ·php session 预定义数组(2013-11-13)
- ·PHP 数组教程 定义数组(2013-11-13)
- ·我要如何在HTML中建立<form>数组?(2013-11-27)
- ·php 读取多维数组方法(2013-11-28)
- ·删除数组与二维数组值的php代码(2013-11-29)
- ·php 数组之删除空数组程序(2013-11-30)
- ·php删除数组中的空值或指定值操作(2013-11-30)
- ·PHP数组传递给JavaScript以及json_encode的gbk中文乱码(2013-12-02)
- ·php对数组元素去重复值(2013-12-03)
- ·php数组提示Notice: Undefined offset解决办法(2013-12-04)
- ·解决php array数组生成xml文件汉字编码问题(2013-12-07)
- ·php中向数组中插入一元素程序代码(2014-01-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)