我想将 2 个数组合并到一个数组中,其中匹配项将设置在一个公共数组键下。此处所有具有相同类别的项目都将归入相应的类别。$categories = category::where('cat_flag','Y')->pluck('id')->toArray();$items = item::where('item_flag','Y')->get(['item_name','cat_id'])->toArray();我想将它们格式化成一个数组,如下所示:$formatedArray = [ 21=>[{'item_name'=>'abc','cat_id'=>'21'},{'item_name'=>'def','cat_id'=>'21'}], 32=>[{'item_name'=>'abc','cat_id'=>'32'}]]我试过这个。我意识到这是不正确的,但无法提出任何解决方案来实现我的目标。$formatedArray = [];foreach ($categories as $cat){ foreach ($items as $itm) { $formatedArray[ $cat->id ] = $itm; }}
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
试试这个:
$formatedArray = [];
foreach ($categories as $category) {
foreach ($items as $item) {
if ($item['cat_id'] == $category) {
$formatedArray[$category][] = $item;
}
}
}
注意:如果 cat_id(例如:'cat_id'=>'32')需要是一个字符串,那么您需要转换该值。
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消