如何停止在 foreach 循环中向数组中添加更多数据

我循环 2 个数组、日期和数据


        $rdate = $request->month; //<-- Requested month

        $days = Carbon::create(); 

        $days = $days->daysInMonth; //<-- Finding how much days in month


        for ($i = 1; $i < $days; $i++) { //Looping Date

            $date = $rdate . '-' . $i; //Making full Date with formate 'Y-m-d'

            foreach ($games as $game) { //Looping game array have 3 collection ['game1', 'game2', 'game3']

                $result = Result::whereDate('created_at', $date)->where('game', $game->name)->where('admin_id', $admin->id)->first(); // Query Results for getting perticular game with date

                if ($result) { //Checking if current date haven't result

                    $r[] = [

                        'game' => $game->name,

                        'number' => $result->number

                    ];

                } else {

                    $r[] = [

                        'game' => $game->name,

                        'number' => '-'

                    ];

                }

            }


            $resultd[] = [

                'date' => $date,

                'results' => $r // i want to stop adding old data here

            ];

        }

我期待这个结果


{"results":[{"date":"2020-08-1","results":[{"game":"game1","number":"-"},{"game":"game2","number":"-"},{"game":"game3","number":"-"}]},{"date":"2020-08-2","results":[{"game":"game1","number":"-"},{"game":"game2","number":"-"},{"game":"game3","number":"-"}]

实际得到什么


将旧的 $r 添加到结果数组中


如何修复它我试图打破它但无法弄清楚


动漫人物
浏览 121回答 1
1回答

偶然的你

我有一些未经测试的代码,因为我没有您的数据,但我认为下面的代码应该可以工作,您可能需要根据需要修改一些代码。&nbsp; &nbsp; &nbsp; &nbsp; $rdate = '2020-8';&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; $days = collect([1,2,3]);&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; $games = collect(['game1', 'game2', 'game3']);&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; return $days->map(function ($item) use ($rdate,$games) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $date = $rdate.'-'.$item;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return [&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"date" => $date,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"results" => $games->map(function ($g) use ($date) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$result = Result::whereDate('created_at', $date)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;->where('game', $g->name)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;->where('admin_id', $admin->id)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;->first();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return ['game' => $g->name,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'number' => $result ? $result->number : '-',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;})&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;];&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; });
打开App,查看更多内容
随时随地看视频慕课网APP