Heim > Fragen und Antworten > Hauptteil
Ich versuche, ein Array von Objekten in Laravel PHP zu erstellen. Bisher ist mir das gelungen.
Wenn ich das Array zurücksende, erhalte ich die Antwort. Aus Gründen der Übersichtlichkeit habe ich das Bild hinzugefügt.
Ich bekomme diese Ausgabe
Ich möchte eine Antwort wie diese erstellen...
[ { "student": "Jaime Thomas", "subjects": [ { "subject": "Physics", "marks_": 0 }, { "subject": "Chemistry", "marks_": 0 } ] }, { "student": "Jaime Dey", "subjects": [ { "subject": "Physics", "marks_": 0 }, { "subject": "Chemistry", "marks_": 0 } ] } ]
$usersData = User::where('user_id', 2)->where("stud_class", $exam_details->exam_class_id)->where("XXXX", $exam_details->exam_branch_id)->get(); foreach ($exam_data as $subject) { $att_exams = MODEL::where('XXXXX', $subject->subject_id) ->where('XXXX', $user->id) ->first(); if ($att_exams) { $marks = MODEL::where('XXXX', $att_exams->attended_exams_id)->get(); $right = 0; $wrong = 0; $total_marks = $marks->sum('XXXX'); $total_negative_marks = $wrong * $subject->negative_marks; $subjectsArray[] = array( "subject" => $subject->subject_name, "marks_" => $total_marks - $total_negative_marks, ); } else { $subjectsArray[] = array( "subject" => $subject->subject_name, "marks_" => 0, ); } } $studentsArray["subjects"] = array($subjectsArray); } return $studentsArray;
P粉9211300672024-03-31 12:35:23
您可以尝试以下代码:
$studentsArray = []; $usersData = User::where('user_id', 2)->where("stud_class", $exam_details->exam_class_id)->where("XXXX", $exam_details->exam_branch_id)->get(['name', 'id']); foreach ($usersData as $user) { $subjectsArray = []; foreach ($exam_data as $subject) { $att_exams = MODEL::where('XXXXX', $subject->subject_id) ->where('XXXX', $user->id) ->first(); if ($att_exams) { $marks = MODEL::where('XXXX', $att_exams->attended_exams_id)->get(); $right = 0; $wrong = 0; $total_marks = $marks->sum('XXXX'); foreach ($marks as $mark) { if ($mark->XXX== 0) { $wrong++; } else { $right++; } } $total_negative_marks = $wrong * $subject->negative_marks; $subjectsArray[] = [ "subject" => $subject->subject_name, "marks_" => $total_marks - $total_negative_marks, ]; } else { $subjectsArray[] = array( "subject" => $subject->subject_name, "marks_" => 0, ); } } $studentsArray[] = [ "student" => $user->name, "subjects" => $subjectsArray ]; } return $studentsArray;