我有一个结构如下的数组:
[33] => Array
(
[time] => 1285571561
[user] => test0
)
[34] => Array
(
[time] => 1285571659
[user] => test1
)
[35] => Array
(
[time] => 1285571682
[user] => test2
)
如何获取数组中的最后一个值,但保持索引[35]?
我正在寻找的结果是:
[35] => Array
(
[time] => 1285571682
[user] => test2
)
答案 0 :(得分:152)
尝试使用
end($array);
答案 1 :(得分:69)
$last = array_slice($array, -1, 1, true);
有关参数含义的详细信息,请参阅http://php.net/array_slice。
P.S。与其他答案不同,这个答案实际上做你想要的。 : - )
答案 2 :(得分:10)
您可以使用end
推进指向结尾的内部指针或array_slice
以获取仅包含最后一个元素的数组:
$last = end($arr);
$last = current(array_slice($arr, -1));
答案 3 :(得分:4)
如果您有阵列
$last_element = array_pop(array);
答案 4 :(得分:3)
// if your array keys lile
// 0 1 2 3 4 ...
$lastindex= count($ar)-1;
// but if you are not sure
$ar_k=array_keys($ar);
$lastindex=$ar_k[count($ar_k)-1];
// will work
答案 5 :(得分:2)
就像Gumbo说的那样,
<?php
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
?>
答案 6 :(得分:0)
冷酷的另一个解决方案是:
$value = $arr[count($arr) - 1];
以上将计算数组值的数量,减去1然后返回值。
注意:只有在数组键为数字时才能使用。
答案 7 :(得分:0)
由于需要密钥,所接受的解决方案不起作用。
此:
end($array);
return array(key($array) => array_pop($array));
将完全按照问题中的示例返回。
答案 8 :(得分:0)
"SPL-way"
:
$splArray = SplFixedArray::fromArray($array);
$last_item_with_preserved_index[$splArray->getSize()-1] = $splArray->offsetGet($splArray->getSize()-1);
在这里=> The SplFixedArray class了解更多有关SplFixedArray
的信息,以及为什么在某些情况下(尤其是大索引大小的数组数据)比基本array
更可取的原因。