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);
Output for 7.2.0 - 7.2.33, 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.25, 8.4.1 - 8.4.12
Array ( [124] => Array ( [releaseDate] => 2020-07-01 00:00:00 [isNewest] => 1 ) [123] => Array ( [releaseDate] => 2020-07-01 00:00:00 [isNewest] => ) [125] => Array ( [releaseDate] => 2020-07-01 00:00:00 [isNewest] => ) [127] => Array ( [releaseDate] => 2020-07-01 00:00:00 [isNewest] => ) [129] => Array ( [releaseDate] => 2020-08-15 00:00:00 [isNewest] => 1 ) [110] => Array ( [releaseDate] => 2020-08-15 00:00:00 [isNewest] => ) [128] => Array ( [releaseDate] => 2020-08-15 00:00:00 [isNewest] => ) [130] => Array ( [releaseDate] => 2020-08-15 00:00:00 [isNewest] => ) [131] => Array ( [releaseDate] => 2020-08-15 00:00:00 [isNewest] => ) [132] => Array ( [releaseDate] => 2020-08-15 00:00:00 [isNewest] => ) )

preferences:
115.72 ms | 411 KiB | 5 Q