3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array( 0 =>array('driver'=>'xxxx', 'distance' => 100, 'vehicle' => 1, 'date' => '2019-10'), 1=>array('driver'=>'xxxx', 'distance' => 200, 'vehicle' => 2, 'date' => '2019-10'), 2=>array('driver'=>'yyyy', 'distance' => 100, 'vehicle' => 3, 'date' => '2019-10')); $result = []; foreach($array as $v){ $key = $v["driver"] . "_" . $v["date"]; if(isset($result[$key])){ $result[$key]["distance"] += $v["distance"]; }else{ $result[$key] = $v; } } print_r($result);
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
Array ( [xxxx_2019-10] => Array ( [driver] => xxxx [distance] => 300 [vehicle] => 1 [date] => 2019-10 ) [yyyy_2019-10] => Array ( [driver] => yyyy [distance] => 100 [vehicle] => 3 [date] => 2019-10 ) )

preferences:
86.03 ms | 408 KiB | 5 Q