Reputation: 1009
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
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