我想將 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 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消