Priyank
Priyank

Reputation: 1009

make separate array for particular same keys

I have an array like below and I want to convert this array, that is, I want to make a separate array by order_id.

Starting array:

Array
(
    [0] => Array
        (
            [order_id] => 2
            [product_id] => 2
            [product_name] => Product2
            [o_qty] => 5.00
            [d_qty] => 
        )

    [1] => Array
        (
            [order_id] => 2
            [product_id] => 3
            [product_name] => Product 1 Category 2
            [o_qty] => 5.00
            [d_qty] => 54.00
        )

    [2] => Array
        (
            [order_id] => 1
            [product_id] => 4
            [product_name] => Product 2 category 2
            [o_qty] => 1.00
            [d_qty] => 2.00
        )

    [3] => Array
        (
            [order_id] => 3
            [product_id] => 6
            [product_name] => product_name
            [o_qty] => 
            [d_qty] => 1.00
        )

    [4] => Array
        (
            [order_id] => 2
            [product_id] => 7
            [product_name] => afdasdf
            [o_qty] => 3.00
            [d_qty] => 1.00
        )

)

expected output after converting this is like,

Array
(
[2] =>Array( 
    [0] => Array
        (
            [product_id] => 2
            [product_name] => Product2
            [o_qty] => 5.00
            [d_qty] => 
        )

    [1] => Array
        (
            [product_id] => 3
            [product_name] => Product 1 Category 2
            [o_qty] => 5.00
            [d_qty] => 54.00
        )
   [3] => Array
        (

            [product_id] => 7
            [product_name] => afdasdf
            [o_qty] => 3.00
            [d_qty] => 1.00
        )
     )
[1] => Array
        (
            [product_id] => 4
            [product_name] => Product 2 category 2
            [o_qty] => 1.00
            [d_qty] => 2.00
        )

[3] => Array
        (
            [product_id] => 6
            [product_name] => product_name
            [o_qty] => 
            [d_qty] => 1.00
        )
)

Upvotes: 0

Views: 38

Answers (1)

Fabricator
Fabricator

Reputation: 12782

Build up the new array with a foreach loop

$output = array();
foreach ($arr as $v) {
    $k = $v['order_id'];
    unset($v['order_id']);
    $output[$k][] = $v;
}

Upvotes: 2

Related Questions