协慌网

登录 贡献 社区

获取数组的第一个元素

我有一个数组:

array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )

我想得到这个数组的第一个元素。预期结果: 字符串 apple

一个要求: 通过引用传递不能完成 ,所以array_shift不是一个好的解决方案。

我怎样才能做到这一点?

答案

原始答案,但代价高昂(O(n)):

array_shift(array_values($array));

在 O(1)中:

array_pop(array_reverse($array));

编辑其他用例的评论建议等...

如果修改(在重置数组指针的意义上) $array不是问题,你可以使用:

reset($array);

如果需要数组 “copy”,理论上这应该更有效:

array_shift(array_slice($array, 0, 1));

使用 PHP 5.4+(但如果为空则可能导致索引错误):

array_values($array)[0];

正如迈克指出的那样(最简单的方法):

$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
echo reset($arr); //echoes "apple"

如果你想获得密钥:(重置后执行)

echo key($arr); //echoes "4"

PHP 的文档

mixed reset (array &$ array );

描述:

reset()将 数组的内部指针倒回第一个元素并返回第一个数组元素的值,如果数组为空则返回 FALSE。

$first_value = reset($array); // First Element's Value
$first_key = key($array); // First Element's Key

希望这可以帮助。 :)