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);

preferences:
29.67 ms | 404 KiB | 5 Q