获取数组的第一个元素

2022-08-30 05:43:56

我有一个数组:

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

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

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

我该怎么做?


答案 1

原始答案,但代价高昂(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];

答案 2

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

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

如果要获取密钥:(重置后执行)

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

来自 PHP 的文档

混合复位(数组|对象 &$array );

描述:

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