Php 将集合中的每个元素分配给数组中的多个元素

Php 将集合中的每个元素分配给数组中的多个元素,php,laravel,Php,Laravel,所以我有这个问题,我需要检索分配给每个事件的所有路由。我有一个事件模型,通过查询生成器,我将检索这些事件的集合 每个事件(只有5个)都有一个tournamentkey属性(字符串),如下所示: $event->tournamentkey $eventRoutes = [ 'events/{tournamentKey}/home', 'events/{tournamentKey}/tournament-info', '

所以我有这个问题,我需要检索分配给每个事件的所有路由。我有一个事件模型,通过查询生成器,我将检索这些事件的集合

每个事件(只有5个)都有一个tournamentkey属性(字符串),如下所示:

$event->tournamentkey
$eventRoutes = [
            'events/{tournamentKey}/home',
            'events/{tournamentKey}/tournament-info',
            'events/{tournamentKey}/teams',
            'events/{tournamentKey}/schedule-and-results',
            'events/{tournamentKey}/standings',
            'events/{tournamentKey}/stats/general',
            'events/{tournamentKey}/editions'
        ];
另一方面,我有一系列静态路由,如下所示:

$event->tournamentkey
$eventRoutes = [
            'events/{tournamentKey}/home',
            'events/{tournamentKey}/tournament-info',
            'events/{tournamentKey}/teams',
            'events/{tournamentKey}/schedule-and-results',
            'events/{tournamentKey}/standings',
            'events/{tournamentKey}/stats/general',
            'events/{tournamentKey}/editions'
        ];
我想检索一个包含每个$eventRoutes的路由数组。 我不知道我是否解释得很好,但最终结果应该是35条路线,每个事件7条路线(总共5个事件)。 现在我的代码是这样的,但它只返回一个包含5条路由的数组,每个事件只返回第一条路由

$eventRoutes = [
            'events/{tournamentKey}/home',
            'events/{tournamentKey}/tournament-info',
            'events/{tournamentKey}/teams',
            'events/{tournamentKey}/schedule-and-results',
            'events/{tournamentKey}/standings',
            'events/{tournamentKey}/stats/general',
            'events/{tournamentKey}/editions'
        ];
        $eventMenuItems = collect();
        $events = Event::whereFederationId($federationId)->get();
        $events->each(function ($event) use ($eventRoutes, &$eventMenuItems) {
            foreach ($eventRoutes as $route) {
                $newRoutes = str_replace('{tournamentKey}', $event->tournamentkey, $route);
                $eventMenuItems->push($newRoutes);
                return $eventMenuItems;
            }
        });

当然,我做错了什么,但我正在努力找出原因。

您通过从
foreach
循环返回来结束匿名回调。因此我应该将返回$eventMenuItems放在foreach的外部,每个内部,对吗?我不知道我是否正确地表达了我自己,我不确定你是否需要它,因为你通过引用传递数组(我不太熟悉Laravel的功能)。但是如果有必要的话,它应该放在循环之后。是的,它起作用了。。这么愚蠢的错误。。。非常感谢:)