在PHP中,如何使用偏移量迭代数组?

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')

I have an array of numbers that I would like to iterate though via AJAX. lets say I wanted to show the first 5, then have an offset of 5.

how do I go through the array such that the first time i need it I am given [3,5,9,14,16], and then the second time [17,18,19,20,23], etc. etc.

I am thinking i would need a function that is fed the original array?

something like

function Something($array, $offset){ 

} 

You could use array_slice() to extract a portion of the array:

$offset = 5;
$chunk_size = 5;

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

var_dump($chunk);

Output:

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

Assuming you transmit the offset with each Ajax call and that the length of your portions will always be 5, then you can use array_slice

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

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