3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = json_decode('[ { "nsr": "000086310", "type": "3", "date": "2015-07-18", "time": "00:06", "pis": "12138790985" }, { "nsr": "000086313", "type": "3", "date": "2015-07-18", "time": "00:33", "pis": "16073736879" }, { "nsr": "000086316", "type": "3", "date": "2015-07-18", "time": "00:58", "pis": "16634402451" }, { "nsr": "000086316", "type": "3", "date": "2015-07-19", "time": "00:58", "pis": "98127981729" }, { "nsr": "000086316", "type": "3", "date": "2015-07-19", "time": "00:58", "pis": "12398712938" } ]', true); $result = []; foreach ($array as ['date' => $d, 'pis' => $p]) { if (!isset($ref[$d])) { $ref[$d] = ['date' => $d]; $result[] =& $ref[$d]; } $ref[$d]['pis'][] = $p; } var_export($result);
Output for 8.1.32, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 0 => array ( 'date' => '2015-07-18', 'pis' => array ( 0 => '12138790985', 1 => '16073736879', 2 => '16634402451', ), ), 1 => array ( 'date' => '2015-07-19', 'pis' => array ( 0 => '98127981729', 1 => '12398712938', ), ), )

preferences:
92.34 ms | 407 KiB | 5 Q