PHP 在保留密钥的同时获得关联数组的最后3个元素?

我有一个数组:

[13] => Array
(
[0] => joe
[1] => 0


[14] => Array
(
[0] => bob
[1] => 0
)


[15] => Array
(
[0] => sue
[1] => 0
)


[16] => Array
(
[0] => john
[1] => 0
)


[17] => Array
(
[0] => harry
[1] => 0
)


[18] => Array
(
[0] => larry
[1] => 0
)

如何在保存钥匙的同时获得最后3个元素?(数组中的元素数量可能会有所不同,所以我不能简单地在第二个元素之后进行切片)

所以输出是:

  [16] => Array
(
[0] => john
[1] => 0
)


[17] => Array
(
[0] => harry
[1] => 0
)


[18] => Array
(
[0] => larry
[1] => 0
)
71568 次浏览

可以使用带偏移量的 array_slice作为 -3,这样就不必担心数组长度,也可以将 preserve_keys参数设置为 TRUE

$arr = array_slice($arr,-3,3,true);

使用 数组切片:

$res = array_slice($array, -3, 3, true);

你可以使用 Array _ slice ():

<?php
// -3 = start from the end
// true = preserve_keys
$result = array_slice($array, 0, -3, true);
?>

如果希望保留 key,可以将 true 作为第四个参数传入:

array_slice($a, -3, 3, true);