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

根据数组键值将数组拆分为子数组

根据数组键值将数组拆分为子数组

PHP
MYYA 2023-06-30 16:09:20
我在按键值拆分数组时遇到一个问题。我的数组如下所示:-Array([0] => Array    (        [product_id] => 6        [brand_id] => 2    )[1] => Array    (        [product_id] => 1        [brand_id] => 1    )[2] => Array    (        [product_id] => 5        [brand_id] => 1    ))现在我想根据brand_id过滤分割数组。我的预期输出如下:-Array([0] => Array(    [0] => Array    (        [product_id] => 6        [brand_id] => 2    ))[1] => Array(    [0] => Array    (        [product_id] => 1        [brand_id] => 1    )    [1] => Array    (        [product_id] => 5        [brand_id] => 1      )))我的输入数组存储在 $proArray 变量中我的尝试如下:-$brands = array();    foreach ($proArr as $key => $pro) {        $brands[] = $pro['brand_id'];    }    $brands = array_unique($brands);        $ckey = 0;    foreach($brands as $brand){            }
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

一种方法是使用简单的foreach()循环来根据您的brand_id推送值,如下所示-


$key = 'brand_id';

$return = array();

foreach($array as $v) {

     $return[$v[$key]][] = $v;

}

print_r($return);

工作演示: https://3v4l.org/bHuWV


查看完整回答
反对 回复 2023-06-30
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

代码:


$arr = array(

    array(

        'product_id' => 6,

        'brand_id' => 2

    ),

    array(

        'product_id' => 1,

        'brand_id' => 1

    ),

    array(

        'product_id' => 5,

        'brand_id' => 1


    )

);

$res = [];

foreach ($arr as $key => $value)

    $res[$value['brand_id']][] = $value;

$res = [...$res];

print_r($res);

输出:


Array

(

    [0] => Array

        (

            [0] => Array

                (

                    [product_id] => 6

                    [brand_id] => 2

                )


        )


    [1] => Array

        (

            [0] => Array

                (

                    [product_id] => 1

                    [brand_id] => 1

                )


            [1] => Array

                (

                    [product_id] => 5

                    [brand_id] => 1

                )


        )


)


查看完整回答
反对 回复 2023-06-30
  • 2 回答
  • 0 关注
  • 129 浏览

添加回答

举报

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