在PHP中,如何迭代带有偏移量的数组?

时间:2016-06-24 22:17:37

标签: php arrays ajax loops

array(
(int) 0 => '3',
(int) 1 => '5',
(int) 2 => '9',
(int) 3 => '14',
(int) 4 => '16',
(int) 5 => '17',
(int) 6 => '18',
(int) 7 => '19',
(int) 8 => '20',
(int) 9 => '23',
(int) 10 => '24',
(int) 11 => '25',
(int) 12 => '26',
(int) 13 => '28',
(int) 14 => '30',
(int) 15 => '31',
(int) 16 => '32',
(int) 17 => '33',
(int) 18 => '34',
(int) 19 => '35',
(int) 20 => '36',
(int) 21 => '37',
(int) 22 => '38',
(int) 23 => '39',
(int) 24 => '40',
(int) 25 => '41')

我有一组数字,我想通过AJAX迭代。 假设我想显示前5个,然后偏移量为5.

我如何通过数组,这样我第一次需要它时,我得到[3,5,9,14,16],然后是第二次[17,18,19,20,23],等等。

我在想我需要一个能够输入原始数组的函数吗?

类似

function Something($array, $offset){ 

} 

2 个答案:

答案 0 :(得分:1)

您可以使用array_slice()来提取数组的一部分:

$offset = 5;
$chunk_size = 5;

$chunk = array_slice($array, $offset, $chunk_size);

var_dump($chunk);

输出:

array(5) {
  [0]=>
  string(2) "17"
  [1]=>
  string(2) "18"
  [2]=>
  string(2) "19"
  [3]=>
  string(2) "20"
  [4]=>
  string(2) "23"
}

答案 1 :(得分:0)

假设您在每个Ajax调用中传输偏移量并且部分的长度始终为5,那么您可以使用array_slice

$array = array_slice($array, $offset, 5);

foreach( $array as $k => $v )
{
...
}