3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array1 = [ (object)[ 'driver_id' => 2, 'total' => 308, 'total_driver' => 5, 'score1' => 61.6000, 'score2' => 62, ], (object)[ 'driver_id' => 3, 'total' => 354, 'total_driver' => 5, 'score1' => 70.8000, 'score2' => 71, ], ]; $array2 = [ [ 'driver_id' => 2, 'recommendation_min' => 0, 'recommendation_max' => 50, 'recommendation_key_range' => 'Low', 'recommendation_observation' => 'Low', 'recommendation_' => 'Low', ], [ 'driver_id' => 2, 'recommendation_min' => 51, 'recommendation_max' => 78, 'recommendation_key_range' => 'Moderate', 'recommendation_observation' => 'Moderate', 'recommendation_' => 'Moderate', ], ]; var_export( array_map( fn($obj) => (object)array_merge( array_find( $array2, fn($row) => $obj->driver_id == $row['driver_id'] && $obj->score2 >= $row['recommendation_min'] && $obj->score2 <= $row['recommendation_max'] ) ?? [], (array)$obj ), $array1 ) );

preferences:
61.91 ms | 406 KiB | 5 Q