3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 124 => [ 'releaseDate' => '2020-07-01 00:00:00', 'isNewest' => true, ], 110 => [ 'releaseDate' => '2020-08-15 00:00:00', 'isNewest' => false, ], 129 => [ 'releaseDate' => '2020-08-15 00:00:00', 'isNewest' => true, ], 128 => [ 'releaseDate' => '2020-08-15 00:00:00', 'isNewest' => false, ], 130 => [ 'releaseDate' => '2020-08-15 00:00:00', 'isNewest' => false, ], 131 => [ 'releaseDate' => '2020-08-15 00:00:00', 'isNewest' => false, ], 132 => [ 'releaseDate' => '2020-08-15 00:00:00', 'isNewest' => false, ], 123 => [ 'releaseDate' => '2020-07-01 00:00:00', 'isNewest' => false, ], 125 => [ 'releaseDate' => '2020-07-01 00:00:00', 'isNewest' => false, ], 127 => [ 'releaseDate' => '2020-07-01 00:00:00', 'isNewest' => false, ], ]; uasort($array, function ($a, $b) { // if dates not equal, return result of comparison // since dates are in Y-m-d H:i:s format we can compare as strings if (($rdcmp = strcmp($a['releaseDate'], $b['releaseDate'])) != 0) return $rdcmp; // dates are equal, so sort true values first if ($a['isNewest'] && !$b['isNewest']) return -1; elseif (!$a['isNewest'] && $b['isNewest']) return 1; else return 0; }); print_r($array);

preferences:
83.67 ms | 406 KiB | 5 Q