我需要在循环中部分读取数组,这就是我要做的:
$list = range(1, 9);
shuffle($list);
print_r($list);
for ($i=0; $i<=9; $i++) {
if ($i % 3 == 0) {
echo "=============== START =============== \n";
foreach (array_splice($list, $i) as $value) {
echo $value. "\n";
}
echo "=============== END =============== \n";
}
}
输出:
Array
(
[0] => 4
[1] => 6
[2] => 8
[3] => 3
[4] => 7
[5] => 1
[6] => 9
[7] => 2
[8] => 5
)
=============== START ===============
4
6
8
3
7
1
9
2
5
=============== END ===============
=============== START ===============
=============== END ===============
=============== START ===============
=============== END ===============
=============== START ===============
=============== END ===============
..。所以它只打印了一次数组。但我希望数组在每次迭代中都会打印0-3, 3-6, 6-9
。
预期产出:
=============== START ===============
4
6
8
=============== END ===============
=============== START ===============
3
7
1
=============== END ===============
=============== START ===============
9
2
5
=============== END ===============
发布于 2015-01-31 06:17:20
改变array_splice($list, $i) as $value
致:array_slice($list, $i, 3) as $value
接合:删除数组的一部分并用其他东西替换它
切片:提取数组的一个片段
发布于 2015-01-31 06:27:10
<?php
$list = range(1, 9);
shuffle($list);
print_r($list);
$chunks = array_chunk($list,3);
foreach($chunks as $chunk){
echo "=============== START =============== \n";
foreach($chunk as $value){
echo $value;
}
echo "=============== END =============== \n";
}
?>
发布于 2015-01-31 06:27:38
array_chunk是一种选择。将数组分割为3块,然后是foreach循环。
$list = range(1, 9);
shuffle($list);
$chunks = array_chunk($list, 3);
foreach ($chunks as $chunk) {
echo "=============== START =============== <br/>\n";
foreach ($chunk as $value) {
echo $value . "<br/>\n";
}
echo "=============== END ===============<br/> \n";
}
http://php.net/manual/en/function.array-chunk.php
https://stackoverflow.com/questions/28248740
复制相似问题