是否可以在不重复下面代码的foreach循环的情况下拥有堆栈。
<?php
$stack1 = array('a', 'b', 'c', 'd', 'e','f','g','h','i','j');
$lp1 = 0;
$id1 = 0;
foreach($stack1 AS $v){
$lp1++;
if($lp1==3){
break;
}else{
$id1++;
echo 'Stack-1 => '.$v.'<br>';
}
}
$stack2 = array_slice($stack1, $id1);
$lp2 = 0;
$id2 = 0;
foreach ($stack2 as $v2){
$lp2++;
if($lp2==3){
break;
}else{
$id2++;
echo 'Stack-2 => '.$v2.'<br>';
}
}
$stack3 = array_slice($stack2, $id2);
$lp3 = 0;
$id3 = 0;
foreach ($stack3 as $v3){
$lp3++;
if($lp3==3){
break;
}else{
$id3++;
echo 'Stack-3 => '.$v3.'<br>';
}
}
?>
第一个堆栈1的大小是动态的,可能会不时变化。我不知道如何在不重复foreach循环的情况下使其工作。请帮忙。
答案 0 :(得分:1)
不确定这是不是你的意思,但它会创建变量$ stack1 - &gt; $ stack5作为数组,每个包含两个项目。
我使用array_chunk拆分数组,然后用关联键创建一个新数组,我可以提取它来分离数组变量。
$stack1 = array('a', 'b', 'c', 'd', 'e','f','g','h','i','j');
$stacks = array_chunk($stack1, 2);
Foreach($stacks as $key => $stack){
$new['stack' . ($key+1)] = $stack;
}
Extract($new);
Var_dump($stack1, $stack2, $stack3, $stack4, $stack5);