何らかの理由で、この配列は 1 行目を 2 行目に、1 行目と 2 行目を 3 行目に、というように繰り返し続けます。
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 などのタイトルが付けられています。必要に応じて、エラーの意味を示すリンクを誰かに示すことができます。