0

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

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

2 回答 2

1

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

$key = 'brand_id';
$return = array();
foreach($array as $v) {
     $return[$v[$key]][] = $v;
}
print_r($return);

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

于 2020-06-26T12:22:05.013 回答
0

代码:

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

        )

)
于 2020-06-26T12:18:56.703 回答