3v4l.org

run code in 500+ PHP versions simultaneously
<?php $array = [ [ 'name' => 'LILI', 'actual_start' => '2021-11-10T18:34:00+00:00', 'actual_end' => '2021-11-10T21:32:00+00:00', ], [ 'name' => 'MILI', 'actual_start' => '2021-11-18T17:33:00+00:00', 'actual_end' => '2022-03-18T19:36:00+00:00', ], [ 'name' => 'VANILI', 'actual_start' => '2021-11-18T17:33:00+00:00', 'actual_end' => '2022-03-18T17:36:00+00:00', ], [ 'name' => 'MANILA', 'actual_start' => '2021-11-18T11:33:00+00:00', 'actual_end' => '2022-03-18T19:36:00+00:00', ] ]; $size = 3; $maxes = array_fill(0, $size, 0); $names = []; foreach ($array as $row) { $diff = strtotime($row['actual_end']) - strtotime($row['actual_start']); foreach ($maxes as $i => $max) { if ($diff > $max) { array_splice($maxes, $i, 0, $diff); array_splice($names, $i, 0, $row['name']); unset($maxes[$size], $names[$size]); break; } } } echo implode(' ', $names);

preferences:
87.84 ms | 1127 KiB | 5 Q