PHP array_keys 函数
最后修改于 2025 年 3 月 13 日
PHP 的 array_keys
函数返回数组中的所有键或键的子集。它对于提取和处理数组键非常有用。
基本定义
array_keys
函数返回数组的所有键。当使用 search_value 参数时,它还可以返回特定值的键。
语法:array_keys(array $array, mixed $search_value = null, bool $strict = false): array
。该函数返回一个包含键的新数组。
基本的 array_keys 示例
这演示了如何从一个简单的关联数组中提取所有键。
basic_array_keys.php
<?php $user = [ 'name' => 'John', 'age' => 30, 'email' => 'john@example.com' ]; $keys = array_keys($user); print_r($keys);
此代码将输出 $user 数组中的所有键。结果将是:Array ( [0] => name [1] => age [2] => email )。
搜索特定值
查找数组中具有特定值的键。
search_values.php
<?php $colors = [ 'red' => '#FF0000', 'green' => '#00FF00', 'blue' => '#0000FF', 'dark_red' => '#FF0000' ]; $redKeys = array_keys($colors, '#FF0000'); print_r($redKeys);
这将找到值为 '#FF0000' 的所有键。输出将是:Array ( [0] => red [1] => dark_red )。
使用严格比较
演示了搜索时松散比较和严格比较之间的区别。
strict_comparison.php
<?php $data = [ 'a' => '1', 'b' => 1, 'c' => '1.0', 'd' => 1.0 ]; $looseMatch = array_keys($data, 1); $strictMatch = array_keys($data, 1, true); print_r($looseMatch); print_r($strictMatch);
使用松散比较,所有元素都匹配 1。使用严格比较,只有整数 1 匹配。这显示了 strict 参数的重要性。
处理数值数组
即使是数值数组也有键,array_keys 可以提取它们。
numeric_array.php
<?php $fruits = ['apple', 'banana', 'cherry']; $keys = array_keys($fruits); print_r($keys);
这演示了数值数组具有顺序的数字键。输出将是:Array ( [0] => 0 [1] => 1 [2] => 2 )。
多维数组
从多维数组结构中提取键。
multidimensional_array.php
<?php $users = [ 'user1' => ['name' => 'Alice', 'age' => 25], 'user2' => ['name' => 'Bob', 'age' => 30], 'user3' => ['name' => 'Charlie', 'age' => 35] ]; $userKeys = array_keys($users); print_r($userKeys);
这将提取多维数组的顶级键。输出将是:Array ( [0] => user1 [1] => user2 [2] => user3 )。
最佳实践
- 内存使用:处理大型数组时请注意。
- 严格模式:使用严格比较进行精确匹配。
- 键类型:请记住,键可以是整数或字符串。
- 性能:对于简单的迭代,请考虑其他替代方案。
来源
本教程介绍了 PHP array_keys
函数,并提供了实际示例,展示了它在各种数组键提取场景中的用法。
作者
列出 所有 PHP 数组函数。