5.16 检查数组索引是否存在
PHP提供了函数array_key_exists()检查给定的索引是否存在于数组中,该函数语法如下。
bool array_key_exists(mixed $key, array $search)
该函数查找由参数$key指定的索引是否存在于由参数$sarch指定的数组中,如果存在,该函数返回TRUE,否则或者出错时,返回FALSE。参数$key可以是任何能作为数组索引的值。代码5-27演示了该函数的用法。
代码5-27 使用函数array_key_exists()检查数组中是否存在某索引5-27.php
01 <?php 02 $olympic = array( 03 'Barcelona'=>1992, 04 'Atlanta'=>1996, 05 'Sydney'=>2000, 06 'Athens'=>2004, 07 'Beijing'=>2008 08 ); // 定义数组$olympic 09 10 $city = array( 11 'Rome', 12 'Athens', 13 'Shanghai' 14 ); // 定义数组$city 15 16 foreach($city as $c) // 遍历数组$city 17 { 18 if(array_key_exists($c, $olympic)) // 判断$city 的值是否是数组$olympic 的索引 19 { 20 echo $c.' 是数组olympic 的索引'; 21 echo '<br/>'; 22 echo '<br/>'; 23 } 24 else 25 { 26 echo $c.' 不是数组olympic 的索引'; 27 echo '<br/>'; 28 echo '<br/>'; 29 } 30 } 31 ?>
图5-27 检查索引是否存在
【代码解析】代码第02~14行定义了两个数组,读者可以看出,数组$city中的某些内容与数组$olympic的索引有些重复。本例的目的就是要判断数组$city中的元素是否在数组$olympic中。第16行通过一个循环来遍历数组$city中的每个元素,第18行再用函数array_key_exists()检查当前的元素是否是数组$olympic的索引。5-27.php的执行结果如图5-27所示。