作者: BigLoser 访问次数: 139 创建时间: 2023-01-03 12:58:34 更新时间: 2024-04-20 05:10:00
上一篇文章中我们了解了数组的写操作,也就是增删,但是在实际的开发中我们用的最多的还是读操作,也就是查询操作。数组是一个数据集合,能够在不同的类型数组和不同结构的数组内确定某个特定元素的存在是否是必需的。
PHP 提供了一系列的操作函数,比如 in_array()、array_key_exsits()、array_search()、array_keys()、array_values()等函数,可根据需求使用不同的方式查询素组的元素。
下面我们通过相关的实例进行了解他们的用法,看看普通的索引数组和键值对的关联数组怎么查询特定元素。代码如下:
<?php $arr1 = array('张三','李四','王五','李白','杜甫','白居易'); //名字和年龄 $arr2 = array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21); //查询数组中是否包含某个元素 if(in_array('李白', $arr1)){ echo '李白在数组$arr1中<br>'; } if(array_key_exists('杜甫',$arr2)){ echo '键为杜甫的元素存在数组$arr2中<br>'; } if(array_search(21, $arr2)){ echo '数组$arr2中有年龄为21的学生<br>'; } //输出数组的键名 $arr2_key = array_keys($arr2); echo '<pre>'; print_r($arr2_key); //获取数组的所有值 $arr2_val = array_values($arr2); echo '<pre>'; print_r($arr2_val); ?>
执行结果如下:
上面通过实例展示了查询相关的函数。
数组 $arr1 为一个数字索引数组。in_array('李白',$arr1)判定元素'单床房'是否在数组 $arr1 中,如果在,就返回 true。if 语句得到返回值为真,然后打印相关描述。
数组 $arr2 为一个联合索引数组。array_key_exists('杜甫',$arr2)判定一个键值为'单床房'的元素是否在数组 $arr2 中,如果在,就返回 true。if 语句得到返回值为真,然后打印相关描述。array_key_exists()是专门针对关联数组的“键名”进行查询的函数。
array_search()是专门针对联合数组的“元素值”进行查询的函数。同样针对 $arr2 这个联合数组进行操作。array_search(21,$arr2)判定一个元素值为 21 的元素是否在数组 $arr2 中,如果在,就返回 true。if 语句得到返回值为真,然后打印相关描述。
函数 array_keys()用于取得数组“键值”,并把键值作为数组元素输出为一个数字索引数组的函数,主要用于联合索引数组。array_keys($arr2)获得数组 $arr2 的键值,并把它赋值给变量 $arr2_key 以构成一个数组。用 print_r()打印数组。函数 array_keys()虽然也可以取得数字索引数组的数字索引,但是这样做意义不大。
函数 array_values()用于取得数组元素的“元素值”,并把元素值作为数组元素输出为一个数字索引数组的函数。array_values($arr2)获得数组 $arr2 的元素值,并把它赋值给变量 $arr2_val 构成一个数组。最后用 print_r()输出 $arr2_val。
这几个函数只是针对一维数组,无法用于多维数组。它们在查询多维数组的时候,只会处理最外围的数组,其他内嵌的数组都作为数组元素处理,不会得到内嵌数组内的键值和元素值。所以再对多维数组进行操作时,我们需要结合这些函数重新封装针对多维数组的操作的函数,特别是二维数组的操作,二维数组在开发中是最常见的数据格式,比如从数据获取到的数据。
语言: zh-CN
翻译人员:
原作者:
转载地址:
源网址: https://xie.infoq.cn/article/4461cc546dda1b539e4a2ca58
版权: 本站所有内容, 版权归原作者所有。发表原创内容将会获得现金奖励, 并且随着时间倍数增长, 请了解我们的内容奖励计划。