由于某种原因,这个数组不断重复第一行到第二行,第一行和第二行重复到第三行,依此类推。
unset ($grade); $grade = array();
foreach ($row as $grade => $value) {
if (substr($grade, 0,1)== "y") {
if ($grade == "y1") {if ($value == "x") {$grades[] = "1";}}
if ($grade == "y2") {if ($value == "x") {$grades[] = "2";}}
if ($grade == "y3") {if ($value == "x") {$grades[] = "3";}}
if ($grade == "y4") {if ($value == "x") {$grades[] = "4";}}
if ($grade == "y5") {if ($value == "x") {$grades[] = "5";}}
if ($grade == "y6") {if ($value == "x") {$grades[] = "6";}}
if ($grade == "y7") {if ($value == "x") {$grades[] = "7";}}
}}
$grades_string = implode(", ", $grades);
dB行标题为y1,y2等。 我可以向某人显示一个链接,例如我的意思,如果需要,错误就是。
答案 0 :(得分:4)
这是因为您创建了$grade = array();
,但您想创建$grades = array();
更正此语法错误,然后应该可以正常工作。
您可以将if ($value == "x")
移至if (substr($grade, 0,1)== "y")
,这样可以让您的代码更清晰,更快捷。在你的情况下:
if (substr($grade, 0,1)== "y" && $value == "x") {
if ($grade == "y1") {$grades[] = "1";}
...
答案 1 :(得分:0)
我只是重写循环以使其更具可读性/更有意义,您仍然需要清除错误,然后我会更新我的答案。
foreach ($row as $grade => $value) {
if (substr($grade, 0,1)== "y" AND $value == "x") {
if ($grade == "y1") {$grades[] = "1";}
elseif ($grade == "y2") {$grades[] = "2";}
elseif ($grade == "y3") {$grades[] = "3";}
elseif ($grade == "y4") {$grades[] = "4";}
elseif ($grade == "y5") {$grades[] = "5";}
elseif ($grade == "y6") {$grades[] = "6";}
elseif ($grade == "y7") {$grades[] = "7";}
}
}