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

我在按键值拆分数组时遇到一个问题。我的数组如下所示:-


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){

        

    }


MYYA
浏览 130回答 2
2回答

BIG阳

一种方法是使用简单的foreach()循环来根据您的brand_id推送值,如下所示-$key = 'brand_id';$return = array();foreach($array as $v) {     $return[$v[$key]][] = $v;}print_r($return);工作演示: https://3v4l.org/bHuWV

慕田峪7331174

代码:$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                )        ))
打开App,查看更多内容
随时随地看视频慕课网APP