申し訳ありませんが、私は開発に新しくなりましたので、かなりの時間をかけて適切な解決策を得られませんでした。Forループの各値をグループ化し、グループ化された値に基づいて実行する方法
同じ値を持つ配列をグループ化するとします。 例として配列の総サイズは以下のように3であり、ループごとに3回実行されますが、2つの一意のclass_idしか含まれていないため、ループを2回しか実行しませんでした。
だから、私によると、出力として、私はそれとして、各のみ2回実行する最も簡単な方法があるので、
array(3) {
[0]=>
array(2) {
["subject_id"]=>
string(1) "4"
["class_id"]=>
string(1) "1"
}
[1]=>
array(2) {
["subject_id"]=>
string(1) "5"
["class_id"]=>
string(1) "1"
}
[2]=>
array(2) {
["subject_id"]=>
string(1) "7"
["class_id"]=>
string(1) "2"
}
}
PHPコード
function view_class()
{
global $conn;
global $email;
global $sub_cls;
global $school_id;
foreach($sub_cls as $index => $record)
{
var_dump($sub_cls);
$class_id = $record['class_id'];
$subject_id = $record['subject_id'];
//echo "<script>alert($class_id)</script>";
$run = mysqli_query($conn,"select * from class where class_id = ".$class_id." group by $class_id");
while($row = mysqli_fetch_array($run))
{
$class_id = $row['class_id'];
$class_name = $row['class_name'];
echo "<option value='$class_id'>$class_name</option>";
}
}
}
'class_id'を別の配列に入れて、' array_unique'を呼び出して重複を取り除きます。 – Barmar
スキップした要素の 'subject_id'で何をしたいですか? – Barmar
またはループオーバー配列別の配列にクラスidを入れ、ループ内にループするbreak現在の配列のclassidが 'in_array'である場合作成したclassidの新しい配列 –