簡體   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