Laravel - 多对多保存,如何在 foreach 中合并两个数组

当涉及到迭代两个安排以将两者的信息保存在一个表中时,我有一种情况。下面的代码不正确,但它是我想要做的事情的本质。


    $userid = request()->input('user_id');

    $scores = request()->input('score');

    $courses = new Course(request(['course_id']));


    foreach ($scores as $score AND $courses as $course){


        $courses->users()->attach($userid,['score'=>$score, 'course_id' =>$course]);


    }

我一直在使用组合数组的功能,但它唯一做的就是将一个数组的键与另一个数组的值组合,这不是我想要的。


    foreach (array_combine($scores, $courses)  as $score => $course){


        $courses->users()->attach($userid,['score'=>$score, 'course_id' =>$course]);


    }


狐的传说
浏览 100回答 1
1回答

子衿沉夜

你可以这样做:foreach($scores as $index => $score) {  $courses->users()->attach($userid, ['score' => $score, 'course_id' => $courses[$index]]);}注意,$courses和$scores都需要是数组。仔细检查此行是否$courses = new Course(request(['course_id']));实际创建了$courses数组。希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP