在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){
}
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')
code> pre>
我有一个数字数组,我想迭代通过 AJAX。
lets说我想显示前5个,然后偏移量为5. p>
如何通过数组,这样我第一次需要它时,我得到了[ 3,5,9,14,16],然后第二次[17,18,19,20,23]等等。 p>
我在想我需要一个 喂养的功能 他原来的数组? p>
类似 p>
function Something($ array,$ offset){
}
代码> pre>
div>
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 )
{
...
}