确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:

foreach ($an_array as $key => $val) break;

因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?


当前回答

第73页:

$array = ['a' => '..', 'b' => '..'];

array_key_first($array); // 'a'
array_key_last($array); // 'b';

http://php.net/manual/en/function.array-key-first.php

其他回答

array_keys返回一个键数组。取第一个条目。或者,您可以调用数组上的reset,然后调用key。后一种方法可能稍微快一点(Thoug我没有测试它),但它有重置内部指针的副作用。

我认为最好和最快的方法是:

$first_key=key(array_slice($array, 0, 1, TRUE))

对于7.3.0之前的@Blixt回答,可以使用此polyfill:

if (!function_exists('array_key_first')) {
  function array_key_first(array $array) {
    return key(array_slice($array, 0, 1, true));
  }
}
list($firstKey) = array_keys($yourArray);

使用:

$array = ['po','co','so'];

echo reset($array); 

结果:po