为了账号安全,请及时绑定邮箱和手机立即绑定

根据PHP中的键组合数组

根据PHP中的键组合数组

PHP
千万里不及你 2023-06-18 17:16:15
我想将 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')需要是一个字符串,那么您需要转换该值。

//img1.sycdn.imooc.com//648ecc9c0001853713590317.jpg

查看完整回答
反对 回复 2023-06-18
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信