ZetCode

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 array_keys 函数,并提供了实际示例,展示了它在各种数组键提取场景中的用法。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面有十多年的经验。

列出 所有 PHP 数组函数