如何使用 PHP 的 array_keys() 函数获取数组中所有的键名?
发布时间:2023-06-01 19:09:36
在 PHP 中,array_keys() 函数用于获取一个数组中所有的键名,即获取数组中的所有索引或键名,返回的结果是一个包含所有键名的数组。如果你经常需要在程序中获取一个数组中所有的键名,那么使用 array_keys() 函数可以事半功倍,并且它既可以用于普通的索引数组,也可以用于关联数组。
array_keys() 函数的语法如下:
array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )
其中,$array 参数是要获取键名的数组;$search_value 参数是可选的,在搜索键名时限制数组中的值,即只返回含有指定值的键名;$strict 参数也是可选的,表示搜索时是否启用类型严格模式。
下面我们来看一个简单的例子,了解如何使用 array_keys() 函数:
<?php
// 索引数组
$colors = array("red", "green", "blue", "yellow");
$keys = array_keys($colors);
print_r($keys); // 输出 Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
// 关联数组
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
$keys = array_keys($age);
print_r($keys); // 输出 Array ( [0] => Peter [1] => Ben [2] => Joe )
?>
我们可以看到,当使用 array_keys() 函数获取索引数组中的所有键名时,返回的结果是包含所有索引的数组;而当获取关联数组中的所有键名时,返回的结果是包含所有键名的数组。
如果我们希望只获取数组中值为特定值的键名,可以使用第二个参数来设置搜索的限制条件。例如:
<?php
$ages = array("Peter"=>35, "Ben"=>37, "Joe"=>43, "Mary"=>35, "Nancy"=>37);
// 只返回值为 35 的键名
$keys = array_keys($ages, 35);
print_r($keys); // 输出 Array ( [0] => Peter [1] => Mary )
// 只返回值为 37 的键名
$keys = array_keys($ages, 37);
print_r($keys); // 输出 Array ( [0] => Ben [1] => Nancy )
?>
最后,如果我们希望在搜索时使用类型严格模式,可以将第三个参数 $strict 设置为 true。例如:
<?php $values = array(0, "0", false, "false", null); // 使用非严格模式搜索 $keys = array_keys($values, false); print_r($keys); // 输出 Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 ) // 使用严格模式搜索 $keys = array_keys($values, false, true); print_r($keys); // 输出 Array ( [0] => 2 ) ?>
以上就是使用 PHP 的 array_keys() 函数获取数组中所有键名的方法。总体来说,这个函数非常简单易用,但却能够节省我们大量的时间和精力,提高程序的效率。
