获取PHP数组中的最后一个键值对

gre*_*dit 46 php arrays

我有一个结构如下的数组:

[33] => Array
    (
        [time] => 1285571561
        [user] => test0
    )

[34] => Array
    (
        [time] => 1285571659
        [user] => test1
    )

[35] => Array
    (
        [time] => 1285571682
        [user] => test2
    )
Run Code Online (Sandbox Code Playgroud)

如何获取数组中的最后一个值,但保持索引[35]?

我正在寻找的结果是这样的:

[35] => Array
    (
        [time] => 1285571682
        [user] => test2
    )
Run Code Online (Sandbox Code Playgroud)

Ale*_*tau 152

试着用

end($array);
Run Code Online (Sandbox Code Playgroud)

  • 这是获取最后一个数组元素的_value_的最佳方法,但OP要求的数组只包含最后一个元素(具有正确的索引).但是,+1这就是人们需要的Google搜索. (13认同)

sal*_*the 68

$last = array_slice($array, -1, 1, true);
Run Code Online (Sandbox Code Playgroud)

有关参数含义的详细信息,请参见http://php.net/array_slice.

PS与其他答案不同,这个答案实际上做了你想要的.:-)

  • +1这实际上做了问题 - 它保留了索引并返回一个带有单个元素的数组(这是问题中示例所暗示的). (5认同)

Gum*_*mbo 10

您可以使用end将内部指针前进到结尾或array_slice获取仅包含最后一个元素的数组:

$last = end($arr);
$last = current(array_slice($arr, -1));
Run Code Online (Sandbox Code Playgroud)