$arr = array(1,2,3,4,5,6,7,8);
希望用循环输出
start1
1
2
3
4
end1
start2
1
2
3
4
end2
----------------------------------------------------------
start1
5
6
7
8
end1
start2
5
6
7
8
end2
意思就是把数组 每4个一分组
而且每组要重复两次
回复讨论(解决方案)
'; foreach ($temp as $val) { echo $val.'
'; } echo 'end'.$k.'
'; }}
$arr = array(1,2,3,4,5,6,7,8);$n = 2; // 循环2次$split = 4; // 4个为一个分组echo '';response($arr, $n, $split);echo '';function response($arr, $n, $split){ while(count($arr)>0){ $tmp = array_splice($arr, 0, $split); for($i=0;$i<$n;$i++){ echo 'start'.($i+1)."\r\n"; echo implode("\r\n", $tmp)."\r\n"; echo 'end'.($i+1)."\r\n"; } echo "----------------------------------------------------------\r\n"; }}
start11234end1start21234end2----------------------------------------------------------start15678end1start25678end2
while(count($arr)>0)
while循环没有终止 为什么是正常的呢
while(count($arr)>0)
while循环没有终止 为什么是正常的呢
array_splice 会把 $arr的元素拿出,使$arr元素减少。所以当元素全部取出后。$arr为空,退出循环。
好的 非常感谢