我正在尝试使用foreach来获取每个id的数据。但是,当代码运行时,它只获取一个ID的数据。以下是代码
$buffalidforavgmilk = Buffalodata::groupBy('buffaloID')->get('buffaloID')- >pluck('buffaloID')->toArray();
foreach ($buffalidforavgmilk as $id) {
$milkperid = Buffalomilkrecord::where('buffaloID', $id)->pluck('buffaloID')->toArray();
dd([$buffalidforavgmilk,$milkperid]);
}输出
array:2 [▼
0 => array:4 [▼
0 => "Buffalo-01"
1 => "Buffalo-02"
2 => "Buffalo-03"
3 => "Buffalo-04"
]
1 => array:5 [▼
0 => "Buffalo-01"
1 => "Buffalo-01"
2 => "Buffalo-01"
3 => "Buffalo-01"
4 => "Buffalo-01"
]
]这里循环只给出一个ID,其中所有4个ID都需要数组(对于测试,我只尝试获取buffaloID)
提前谢谢
发布于 2022-02-23 12:59:58
dd中断执行。如果您想转储每个结果,然后停止执行,则应该使用dump代替。
foreach ($buffalidforavgmilk as $id) {
$milkperid = Buffalomilkrecord::where('buffaloID', $id)->pluck('buffaloID')->toArray();
dump([$buffalidforavgmilk,$milkperid]);
}
dd('Done');不过,这并不理想。在循环的每一次迭代中都要进行查询。
删除foreach的一种方法是将查询更改为使用whereIn。
$buffalidforavgmilk = Buffalodata::groupBy('buffaloID')->pluck('buffaloID')->toArray();
$milkperids = Buffalomilkrecord::whereIn('buffaloID', $buffalidforavgmilk)->pluck('buffaloID')->toArray();https://stackoverflow.com/questions/71237222
复制相似问题