首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取数组的最后一个元素而不删除它的最好方法是什么?

获取数组的最后一个元素而不删除它的最好方法是什么?
EN

Stack Overflow用户
提问于 2010-09-11 02:39:24
回答 25查看 431.6K关注 0票数 487

好的,

我知道关于array_pop()的所有内容,但这会删除最后一个元素。获取数组的最后一个元素而不删除它的最好方法是什么?

编辑:这是一个额外的奖励:

代码语言:javascript
复制
$array = array('a' => 'a', 'b' => 'b', 'c' => 'c');

甚至是

代码语言:javascript
复制
$array = array('a', 'b', 'c', 'd');
unset($array[2]);
echo $array[sizeof($array) - 1]; // Output: PHP Notice:  Undefined offset:  2 in - on line 4
EN

回答 25

Stack Overflow用户

发布于 2010-09-11 02:40:13

试一试

代码语言:javascript
复制
$myLastElement = end($yourArray);

要重置它(感谢@hopeseekr),请执行以下操作:

代码语言:javascript
复制
 reset($yourArray);

链接到manual

@大卫·默多克补充道:$myLastElement = end(array_values($yourArray));// and now you don't need to call reset().在E_STRICT上发出了警告

代码语言:javascript
复制
Strict Standards: Only variables should be passed by reference

感谢o_O Tync和所有人!

票数 515
EN

Stack Overflow用户

发布于 2016-03-12 20:20:54

简短而甜蜜。

我想出了一个解决方案来删除错误消息,并保留一行形式和高效的性能:

代码语言:javascript
复制
$lastEl = array_values(array_slice($array, -1))[0];

--以前的解决方案

代码语言:javascript
复制
$lastEl = array_pop((array_slice($array, -1)));

注意:为了避免出现PHP Strict standards: Only variables should be passed by reference,需要使用额外的括号。

票数 216
EN

Stack Overflow用户

发布于 2013-11-05 11:40:50

array_slice($array, -1)有什么问题?(参见手册:http://us1.php.net/array_slice)

array_slice()返回一个数组。可能不是你要找的东西。你想要这个元素。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3687358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档