获取数组的第一个元素
我有一个数组:
array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
我想得到这个数组的第一个元素。预期结果:字符串 apple
一个要求:它不能通过引用传递来完成,所以不是一个好的解决方案。array_shift
我该怎么做?
我有一个数组:
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 的文档:
混合复位(数组|对象 &$array );
描述:
reset() 将数组的内部指针倒回到第一个元素,并返回第一个数组元素的值,如果数组为空,则返回 FALSE。