php二维数组根据某个字段分组

我们要实现的功能是根据某个二维数组相同的值合并成一个新的三维数组

二维数组:


Array
(
    [6] => Array
        (
            [id] => 15
            [cate1] => 1
            [cate2] => 3
            [name] => 测试测试
            [unit] => 1
            [guidePrice] => 222.00
            [cate1name] => 产品标配
            [cate2name] => 棚面
        )

    [7] => Array
        (
            [id] => 16
            [cate1] => 1
            [cate2] => 3
            [name] => 1
            [unit] => 1
            [guidePrice] => 1.00
            [cate1name] => 产品标配
            [cate2name] => 棚面
        )

    [8] => Array
        (
            [id] => 17
            [cate1] => 4
            [cate2] => 7
            [name] => 打完
            [unit] => 米
            [guidePrice] => 32.00
            [cate1name] => 施工升级
            [cate2name] => 门
        )

    [9] => Array
        (
            [id] => 18
            [cate1] => 5
            [cate2] => 8
            [name] => 为单位
            [unit] => 米
            [guidePrice] => 22.00
            [cate1name] => 材料升级
            [cate2name] => 地板
        )

    [10] => Array
        (
            [id] => 19
            [cate1] => 6
            [cate2] => 9
            [name] => 反倒是
            [unit] => 米
            [guidePrice] => 122.00
            [cate1name] => 活动包
            [cate2name] => 阳台
        )

)

我们把 cate1name相同的值拿出来形成一个新的三维数组

代码如下:

//$list为上面的二维数组
$newArray=array();
foreach($list as $v){
    $newArray[$v['cate1name']][]=$v;
}

结果(三维数组):


Array
(
    [产品标配] => Array
        (
            [0] => Array
                (
                    [id] => 15
                    [cate1] => 1
                    [cate2] => 3
                    [name] => 测试测试
                    [unit] => 1
                    [guidePrice] => 222.00
                    [cate1name] => 产品标配
                    [cate2name] => 棚面
                )

            [1] => Array
                (
                    [id] => 16
                    [cate1] => 1
                    [cate2] => 3
                    [name] => 1
                    [unit] => 1
                    [guidePrice] => 1.00
                    [cate1name] => 产品标配
                    [cate2name] => 棚面
                )

        )

    [施工升级] => Array
        (
            [0] => Array
                (
                    [id] => 17
                    [cate1] => 4
                    [cate2] => 7
                    [name] => 打完
                    [unit] => 米
                    [guidePrice] => 32.00
                    [cate1name] => 施工升级
                    [cate2name] => 门
                )

        )

    [材料升级] => Array
        (
            [0] => Array
                (
                    [id] => 18
                    [cate1] => 5
                    [cate2] => 8
                    [name] => 为单位
                    [unit] => 米
                    [guidePrice] => 22.00
                    [cate1name] => 材料升级
                    [cate2name] => 地板
                )

        )

    [活动包] => Array
        (
            [0] => Array
                (
                    [id] => 19
                    [cate1] => 6
                    [cate2] => 9
                    [name] => 反倒是
                    [unit] => 米
                    [guidePrice] => 122.00
                    [cate1name] => 活动包
                    [cate2name] => 阳台
                )

        )

)

 

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值