如何将数组值添加到另一个数组

时间:2021-07-30 13:42:44

标签: laravel

我有两组数组 A 和 B,数组 A 和 B 提交时应该进入数据库表。

A(result)
array:2 [
  0 => 7
  1 => 8
]

B
array:3 [
  "student_test_id" => 8
  "question_id" => 4
  "test_id" => 3
]

预期结果

提交时,我希望数组 A 和 B 的值像这样进入这个表

id| student_test_id | test_id | question_id |result 
1 | 8               | 3       | 4           | 7
2 | 8               | 3       | 4           | 8

我尝试了什么

$result = $request->result;
        $array_conv = array(
            "student_test_id"=>$request->student_test_id,
            "question_id"=>$request->question_id,
            "test_id"=>$request->test_id,
        );
        foreach($request->result as $result){
            $test_log = new StudentTestLog();
            $test_log->student_test_id = $array_conv["student_test_id"];
            $test_log->question_id = $array_conv["question_id"];
            $test_log->test_id = $array_conv["test_id"];
            $test_log->result = $result['id'];
            $test_log->save();
            if($test_log->save()){
                return response()->json('Submited', 200);
            }else{
                return response()->json('Error Submitting', 400);
            }
        }

请帮忙谢谢

1 个答案:

答案 0 :(得分:0)

当从 foreach 返回响应时,除了首先循环的所有其他迭代都被省略,因为 return 结束方法执行。您应该将 return 语句移到循环之外。尝试这样的事情:

$array_conv = array(
    "student_test_id"=>$request->student_test_id,
    "question_id"=>$request->question_id,
    "test_id"=>$request->test_id,
);

$data_to_persist = [];
foreach($request->result as $result){
    array_push( $data_to_persist, [
        'student_test_id' => $array_conv["student_test_id"],
        'question_id' => $array_conv["question_id"],
        'test_id' => $array_conv["test_id"],
        'result' => $result['id']
    ]);
}

$saved = StudentTestLog::insert( $data_to_persist );
if($saved){
    return response()->json('Submited', 200);
}else{
    return response()->json('Error Submitting', 400);
}