php密钥$key,php – 如何KeyBy多个项目具有相同的密钥

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 12:25   437   0

我正在使用Laravel Collections方法,并尝试通过id键入我的查询结果(这是一个集合).问题是我有多个具有相同ID的条目,但指向不同的国家/地区,我希望拥有所有值,而不仅仅是最后一个.

这是我到目前为止使用的代码:

$allCountries = new Collection($allCountries);

$offerCountries = $allCountries->keyBy('id');

dd($offerCountries);

foreach ($offer as $o) {

$o->countries = $allCountries->get($o->id);

}

为了解释,我的查询将结果放在$allCountries中,其中包含id和country,这些结果看起来像这样

id=>225, country=>US

id=>225, country=>IT

id=>3304, country=>NZ

只是为了给你一个快速的想法.我想通过导致$offerCountries的id来键入这个.然后我循环通过之前的Collection,其中包含具有与id的国家/地区结果相关的特定ID的商品.因此,对于报价225,它包含的国家是美国和IT.我遍历每个商品,并将countries对象设置为等于所有$allCountries id.我在这里遇到的问题是keyBy覆盖了值,只占用了最后一个.我希望得到这样的结果:

[

225 => countries: {'id' => 225, 'country' => 'US'}, {'id' =>

'225', 'country' => 'IT'}

3304 => ['id' => 3304, 'country' => 'NZ'],

]

是否有laravel方法来执行此操作,或者我是否需要编写自己的keyBy以便它不会覆盖.如果是这样,我该如何开始编写这个方法?

谢谢

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP