首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只显示数组中的第一项

只显示数组中的第一项
EN

Stack Overflow用户
提问于 2022-02-23 12:47:19
回答 1查看 170关注 0票数 0

我正在尝试使用foreach来获取每个id的数据。但是,当代码运行时,它只获取一个ID的数据。以下是代码

代码语言:javascript
复制
$buffalidforavgmilk = Buffalodata::groupBy('buffaloID')->get('buffaloID')- >pluck('buffaloID')->toArray();
                            
foreach ($buffalidforavgmilk as $id) {
    $milkperid = Buffalomilkrecord::where('buffaloID', $id)->pluck('buffaloID')->toArray();
    dd([$buffalidforavgmilk,$milkperid]);
}

输出

代码语言:javascript
复制
      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)

提前谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-23 12:59:58

dd中断执行。如果您想转储每个结果,然后停止执行,则应该使用dump代替。

代码语言:javascript
复制
foreach ($buffalidforavgmilk as $id) {
    $milkperid = Buffalomilkrecord::where('buffaloID', $id)->pluck('buffaloID')->toArray();
    dump([$buffalidforavgmilk,$milkperid]);
}

dd('Done');

不过,这并不理想。在循环的每一次迭代中都要进行查询。

删除foreach的一种方法是将查询更改为使用whereIn

代码语言:javascript
复制
$buffalidforavgmilk = Buffalodata::groupBy('buffaloID')->pluck('buffaloID')->toArray();

$milkperids = Buffalomilkrecord::whereIn('buffaloID', $buffalidforavgmilk)->pluck('buffaloID')->toArray();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71237222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档