3v4l.org

run code in 300+ PHP versions simultaneously
<?php $inventory = array ( 0 => array ( 'item' => 'NK', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '11', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '1', 'date' => '2017-10-29', ), ), 'item_no' => '1', ), 1 => array ( 'item' => 'FL', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '7', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '2', 'date' => '2017-10-29', ), ), 'item_no' => '2', ), 2 => array ( 'item' => 'AD', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '5', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '3', 'date' => '2017-10-29', ), ), 'item_no' => '3', ), 3 => array ( 'item' => 'CV', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '4', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '6', 'date' => '2017-10-29', ), ), 'item_no' => '4', ), 4 => array ( 'item' => 'NB', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '12', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '4', 'date' => '2017-10-29', ), ), 'item_no' => '5', ), 5 => array ( 'item' => 'SP', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '4', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '6', 'date' => '2017-10-29', ), ), 'item_no' => '6', ), 6 => array ( 'item' => 'WB', 'item_group' => '5', 'sold' => array ( 0 => array ( 'quantity' => '5', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '2', 'date' => '2017-10-29', ), ), 'item_no' => '7', ), 7 => array ( 'item' => 'wny', 'item_group' => '12', 'sold' => array ( 0 => array ( 'quantity' => '4', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '6', 'date' => '2017-10-29', ), ), 'item_no' => '8', ), 8 => array ( 'item' => 'bs', 'item_group' => '12', 'sold' => array ( 0 => array ( 'quantity' => '15', 'date' => '2017-10-28', ), 1 => array ( 'quantity' => '2', 'date' => '2017-10-29', ), ), 'item_no' => '9', ), 9 => array ( 'item' => 'st', 'item_group' => '12', 'sold' => array ( 0 => array ( 'quantity' => '16', 'date' => '2017-10-29', ), ), 'item_no' => '10', ), 10 => array ( 'item' => 'ayhtdws', 'item_group' => '12', 'sold' => array ( 0 => array ( 'quantity' => '2', 'date' => '2017-10-29', ), ), 'item_no' => '11', ), 11 => array ( 'item' => 'sif', 'item_group' => '12', 'sold' => array ( 0 => array ( 'quantity' => '3', 'date' => '2017-10-29', ), ), 'item_no' => '12', ), 12 => array ( 'item' => 'bb', 'item_group' => '12', 'sold' => array ( 0 => array ( 'quantity' => '6', 'date' => '2017-10-29', ), ), 'item_no' => '13', ), ); $new =[]; Foreach($inventory as $sub){ Foreach($sub["sold"] as $sold){ If(!isset($new[$sold["date"]]["date"])) $new[$sold["date"]]["date"] = $sold["date"]; $new[$sold["date"]][$sub["item"]] = $sold["quantity"]; } } $new = array_values($new); Var_dump($new);
Output for 7.0.0 - 7.0.25, 7.1.0 - 7.1.20, 7.2.5 - 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.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
array(2) { [0]=> array(10) { ["date"]=> string(10) "2017-10-28" ["NK"]=> string(2) "11" ["FL"]=> string(1) "7" ["AD"]=> string(1) "5" ["CV"]=> string(1) "4" ["NB"]=> string(2) "12" ["SP"]=> string(1) "4" ["WB"]=> string(1) "5" ["wny"]=> string(1) "4" ["bs"]=> string(2) "15" } [1]=> array(14) { ["date"]=> string(10) "2017-10-29" ["NK"]=> string(1) "1" ["FL"]=> string(1) "2" ["AD"]=> string(1) "3" ["CV"]=> string(1) "6" ["NB"]=> string(1) "4" ["SP"]=> string(1) "6" ["WB"]=> string(1) "2" ["wny"]=> string(1) "6" ["bs"]=> string(1) "2" ["st"]=> string(2) "16" ["ayhtdws"]=> string(1) "2" ["sif"]=> string(1) "3" ["bb"]=> string(1) "6" } }

preferences:
169.96 ms | 405 KiB | 186 Q