获取 PHP 关联数组的第 n 个键

29
我想在特定的入口处获取关联PHP数组的KEY值。具体而言,我知道我需要的KEY是数组中第二个条目的键。
示例:
```html

I want to get the value of the KEY of an associative PHP array at a specific entry. Specifically, I know the KEY I need is the key to the second entry in the array.

Example:

```
$array = array('customer' => 'Joe', 'phone' => '555-555-5555');

我正在构建的内容非常动态,所以我不知道第二个条目是'phone'。有没有一种简单的方法来获取它?

简而言之,(我知道这样做不起作用,但是...)我正在寻找与以下功能等效的东西:key($array[1]);


这是一个非常不寻常的关于“关联数组”的要求。 - Devon
重复问题 https://dev59.com/Mm445IYBdhLWcg3wnrvM 并不相同。他想要通过索引设置值,而我需要基于索引参考键值。 - jtubre
1个回答

56

array_keys函数生成一个数组的键名数字索引数组。

$keys = array_keys($array);
$key = $keys[1];

如果您使用的是PHP 5.4或更高版本,则可以使用简写:

$key = array_keys($array)[1];

2
谢谢。特别是第二行。我不知道这个快捷方式。它有效,但不幸的是,我的DW CS5.5错误检查不喜欢它。 - jtubre
啊,我一直在折腾reset(array)然后key(array),这种方法简单多了。原来是个小问题被忽略了。 - Solvision
array_keys会生成所有键的完整副本。在长数组上非常低效。 - FrancescoMM
@FrancescoMM,你有一个非常长的关联数组吗?那可能是代码异味。另一种选择是遍历数组,但如果你真的想通过整数引用你的关联数组,你需要创建一个新的结构。 - Devon
@FrancescoMM 我不明白你的意思,反转数组是从哪里来的?一般来说,关联数组是哈希表,适合索引但不适合排序。如果你有一个新的问题,可以链接到你的问题,但我建议首先确保你使用了正确的数据结构。 - Devon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接