繁体   English   中英

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

[英]Split the array in to sub arrays based on array key value

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

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过滤拆分数组。 我预期的 output 如下所示:-

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

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

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

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

代码:

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

Output:

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
                )

        )

)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM