array_slice获取数组的最后2个值,无论数组的长度如何

时间:2018-04-12 16:39:24

标签: php arrays slice

我正在尝试使用array_slice从数组中获取最后2个值,无论数组中有多少值。

如果我有这样的数组:

Array ( [0] => orange [1] => red [2] => green [3] => blue [4] => yellow )

就像这样:

Array ( [0] => blue [1] => yellow )

如何编写array_slice()以从每个中获取蓝色和黄色?

这是我尝试的内容:

$arr = array_slice($colors,2,-1);

$blue = $arr[0];
$yellow = $arr[1];

3 个答案:

答案 0 :(得分:2)

  

如何编写array_slice()以获得蓝色和黄色?

$arr = array_slice($colors, -2);

答案 1 :(得分:1)

您也可以通过以下方式获得它:

$arr = array_slice($colors, count($colors) - 2, 2)

答案 2 :(得分:0)

另一种方法,如果你想避免循环和array_slice()(由于某种原因):

$cCount = count($colors);
$arr = [$colors[$cCount-2], $colors[$cCount-1]];

如果在数组上使用count(),您将始终获得数组中元素的总数,因此如果数组中有3个元素,count()将返回3,但最高key实际上是2(因为数组从0开始),所以你可以分别通过count() - 1count() - 2得到最后2个元素。

在上面的例子中,我得到了倒数第二个元素,然后是最后一个元素。