从多维数组中获取最后6个值

Rol*_*and 0 php

我需要从多维数组中获取最后6个值,我试图做这样的事情

for($i=0;$i<6;$i++){
    $stats = array_shift($stats);
}
Run Code Online (Sandbox Code Playgroud)

但是在第一个array_shift之后我得到以下错误

PHP Warning: array_shift(): The argument should be an array
Run Code Online (Sandbox Code Playgroud)

是否有任何功能可以在PHP中执行此操作?

Gre*_*reg 9

你可以使用array_slice():

$stats = array_slice($stats, -6);
Run Code Online (Sandbox Code Playgroud)

你的代码不起作用的原因是因为

  1. array_shift() 从阵列的前面移除 - 所以你最终会删除前6个,这与获得最后6个不同,除非你的阵列有12个项目......
  2. array_shift在适当的位置编辑数组并返回它删除的项

  • 第二个原因是为什么你得到警告 - 因为你有一个多维数组,第一次通过循环`array_shift`返回你的多维数组的第一个元素,这是一个维度数组.在单维数组上调用`array_shift`会返回该数组的第一个值,因此`$ stats`在第二次循环之后不是数组.我希望你在调用两次"array_shift"之后得到一个错误(即在循环的第三次迭代中). (2认同)