为什么几个 foreach 循环不能协同工作?



我写这一行是为了读取三个数组并做一些事情,但任何事物都不会在这三个预言中运行!

foreach ($x_sort as $key => $x_name) {
foreach ($y_sort as $key => $y_name){
foreach ($z_sort as $key => $z_name){
if ((!isset($y_name)) and (!isset($z_name)){
echo $key . "." . $x_name . "," . "," . "<br>";
}elseif ((isset($y_name)) and (!isset($z_name)){
echo $key . "," . $x_name . "," . $key . ',' . $y_name . ',' . "<br>" ;
}elseif ((!isset($y_name)) and (isset($z_name))){
echo $key . "," . $x_name . ',' . ' ,' . $key . ',' . $z_name . "<br>" ;
}elseif(isset($y_name)and isset($z_name))
{
echo $key . "," . $x_name . ',' . $key . ',' . $y_name . $key . ',' . $z_name . "<br>" ;
}
}
}
}

代码中的循环解释有轻微错误。

例如

foreach ($x_sort as $key => $x_name) {
foreach ($y_sort as $key => $y_name){

在这里,两个 for 循环都是不相关的。要使嵌套 for 循环成功迭代其元素,必须确保从顶级循环传播值。

因此,您的代码将更改为

foreach ($x_sort as $key => $x_name) {
foreach ($x_name as $key1 => $y_name){

对第三个循环重复相同的过程。

这里所有建议的解决方案仍然被破坏。我已经修复了您所有的语法错误,请查找所有(){}

<?php
foreach ($x_sort as $x_key => $x_name) {
foreach ($y_sort as $y_key => $y_name) {
foreach ($z_sort as $z_key => $z_name) {
if (
(!isset($y_name)) and
(!isset($z_name))
) {
echo $x_key . "." . $x_name . "," . "," . "<br>";
} elseif (
(isset($y_name)) and
(!isset($z_name))
) {
echo $x_key . "," . $x_name . "," . $y_key . ',' . $y_name . ',' . "<br>" ;
} elseif (
(!isset($y_name)) and
(isset($z_name))
) {
echo $x_key . "," . $x_name . ',' . ' ,' . $z_key . ',' . $z_name . "<br>" ;
} elseif (
(isset($y_name)) and
(isset($z_name))
) {
echo $x_key . "," . $x_name . ',' . $y_key . ',' . $y_name . $z_key . ',' . $z_name . "<br>" ;
}
}
}
}

最新更新