好的,
我知道关于array_pop()
的所有内容,但这会删除最后一个元素。获取数组的最后一个元素而不删除它的最好方法是什么?
编辑:这是一个额外的奖励:
$array = array('a' => 'a', 'b' => 'b', 'c' => 'c');
甚至是
$array = array('a', 'b', 'c', 'd');
unset($array[2]);
echo $array[sizeof($array) - 1]; // Output: PHP Notice: Undefined offset: 2 in - on line 4
发布于 2010-09-11 02:40:13
试一试
$myLastElement = end($yourArray);
要重置它(感谢@hopeseekr),请执行以下操作:
reset($yourArray);
链接到manual
@大卫·默多克补充道:$myLastElement = end(array_values($yourArray));// and now you don't need to call reset().
在E_STRICT上发出了警告
Strict Standards: Only variables should be passed by reference
感谢o_O Tync和所有人!
发布于 2016-03-12 20:20:54
简短而甜蜜。
我想出了一个解决方案来删除错误消息,并保留一行形式和高效的性能:
$lastEl = array_values(array_slice($array, -1))[0];
--以前的解决方案
$lastEl = array_pop((array_slice($array, -1)));
注意:为了避免出现PHP Strict standards: Only variables should be passed by reference
,需要使用额外的括号。
发布于 2013-11-05 11:40:50
array_slice($array, -1)
有什么问题?(参见手册:http://us1.php.net/array_slice)
array_slice()
返回一个数组。可能不是你要找的东西。你想要这个元素。
https://stackoverflow.com/questions/3687358
复制相似问题