重复阵列......那不应该重复吗?

时间:2013-01-28 00:46:54

标签: php

由于某种原因,这个数组不断重复第一行到第二行,第一行和第二行重复到第三行,依此类推。

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等。  我可以向某人显示一个链接,例如我的意思,如果需要,错误就是。

2 个答案:

答案 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";}
    }
}
相关问题