3v4l.org

run code in 500+ PHP versions simultaneously
<?php $arr= [ ['attr_id' => 1,'name' => 'qty','value' =>'100'], ['attr_id' => 1,'name'=>'qty','value'=>'200'], ['attr_id'=>1,'name'=>'qty','value'=>'500'], ['attr_id'=>2,'name'=>'price','value'=>'10$']]; $value = array_column($arr, 'value'); $id = array_column($arr, 'attr_id'); $res =[]; Foreach($id as $key => $i){ If(!isset($res[$i])) $res[$i] = ['attr_id' => $i, 'name'=>'qty', 'value' => []]; $res[$i]['value'][] = $value[$key]; } Var_dump($res);
Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
array(2) { [1]=> array(3) { ["attr_id"]=> int(1) ["name"]=> string(3) "qty" ["value"]=> array(3) { [0]=> string(3) "100" [1]=> string(3) "200" [2]=> string(3) "500" } } [2]=> array(3) { ["attr_id"]=> int(2) ["name"]=> string(3) "qty" ["value"]=> array(1) { [0]=> string(3) "10$" } } }

preferences:
107.46 ms | 1488 KiB | 4 Q