首页  >  问答  >  正文

Laravel - 在 PHP 中创建对象数组和数组

我正在尝试在 laravel php 中创建一个对象数组。到目前为止我已经实现了这一目标。

当我返回数组时,我得到了响应,为了清楚起见,我添加了图像。

我得到这个输出

我想创建这样的响应...

[
    {
        "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粉298305266P粉298305266226 天前440

全部回复(1)我来回复

  • P粉921130067

    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;

    回复
    0
  • 取消回复