所以,我构建了一个小的php数组循环。 目标是:当一个数组值为空时,循环将结束。
这是代码:
<?php
if(isset($_POST['submit'])) {
$Var_1 = array('Manggo_1' => rand(1, 3),
'Manggo_2' => rand(1, 3),
'Manggo_3' => rand(1, 3),
'Manggo_4' => rand(1, 3),
'Manggo_5' => rand(1, 3),
'Manggo_6' => rand(1, 3)
);
$Var_2 = array('Manggo_7' => rand(1, 3),
'Manggo_8' => rand(1, 3),
'Manggo_9' => rand(1, 3),
'Manggo_10' => rand(1, 3),
'Manggo_11' => rand(1, 3),
'Manggo_12' => rand(1, 3)
);
while (!(empty($Var_1) && empty($Var_2))) {
foreach ($Var_1 as $value) {
echo "$value, ";
if ($value == 3) {
unset($value);
} elseif ($value == 1) {
array_push($Var2, $value);
}
}
foreach ($Var_2 as $value) {
echo "$value, ";
if ($value == 3) {
unset($value);
} elseif ($value == 1) {
array_push($Var1, $value);
}
}
}
}
那么,这就是我所有的PHP代码,如果$value == 3
,我想破坏该值,if == 1
,我想将值插入另一个数组。循环,直到其中一个数组为空。
问题是:如何打印/回显每次循环迭代的结果(点击提交按钮后),直到其中一个数组值为空? 我总是永远地循环。
感谢。
答案 0 :(得分:1)
while (!empty($Var_1) && !empty($Var_2)) {
foreach ($Var_1 as $key=>$value) {
echo "$value, ";
if ($value == 3) {
unset($Var_1[$key]);
} elseif ($value == 1) {
array_push($Var_2, $value);
}
}
foreach ($Var_2 as $value) {
echo "$value, ";
if ($value == 3) {
unset($Var_2[$key]);
} elseif ($value == 1) {
array_push($Var_1, $value);
}
}
}
}
你正在永远循环,因为
答案 1 :(得分:0)
您没有解决数组中的值,您只是在循环中取消设置局部变量。您可以使用$ key =&gt; $ value来获取返回循环数组的引用,如下所示:
foreach ($Var_2 as $key=>$value) {
echo "$value, ";
if ($value == 3) {
unset($Var_2[$key]);
} elseif ($value == 1) {
array_push($Var1, $value);
}
}