首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带密钥的array_pop()

带密钥的array_pop()
EN

Stack Overflow用户
提问于 2011-08-03 21:16:32
回答 7查看 22.5K关注 0票数 30

考虑以下数组

代码语言:javascript
复制
$array = array('fruit'     => 'apple',
               'vegetable' => 'potato',
               'dairy'     => 'cheese');

我想使用流行来获得最后一个键/值对。

然而,人们会注意到,在下列情况下

代码语言:javascript
复制
$last = array_pop($array);

var_dump($last);

它只输出值(string(6) "cheese")

如何“弹出”数组中的最后一对,保留键/值数组结构?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-03 21:19:01

查看array_slice() http://php.net/manual/en/function.array-slice.php

最后一个参数true是保留键。

当您将偏移量作为负值传递时,它从末尾开始。这是一个很好的伎俩,得到最后的元素,而不计算总数。

代码语言:javascript
复制
$array = [
    "a" => 1,
    "b" => 2,
    "c" => 3,
];

$lastElementWithKey = array_slice($array, -1, 1, true);

print_r($lastElementWithKey);

产出:

代码语言:javascript
复制
Array
(
    [c] => 3
)
票数 23
EN

Stack Overflow用户

发布于 2011-08-03 21:21:44

试一试

代码语言:javascript
复制
end($array); //pointer to end
each($array); //get pair
票数 10
EN

Stack Overflow用户

发布于 2011-08-03 21:22:04

您可以对键和值使用end()key(),然后可以弹出该值。

代码语言:javascript
复制
$array = array('fruit' => 'apple', 'vegetable' => 'potato', 'dairy' => 'cheese');
$val = end($array); // 'cheese'
                    // Moves array pointer to end
$key = key($array); // 'dairy'
                    // Gets key at current array position
array_pop($array); // Removes the element
                   // Resets array pointer
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6933403

复制
相关文章

相似问题

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