Этот вопрос действительно вдохновлен еще одним из них на SO, и я хотел немного расширить его.
Имея ассоциативный массив в PHP, можно сортировать его значения, но где значения равны, чтобы сохранить исходный порядок ключей, используя один (или более) PHP, встроенный в функцию сортировки?
Вот сценарий, который я использовал для тестирования возможных решений (не нашел):
<?php
header('Content-type: text/plain');
for($i=0;$i<10;$i++){
$arr['key-'.$i] = rand(1,5)*10;
}
uasort($arr, function($a, $b){
// sort condition may go here //
// Tried: return ($a == $b)?1:($a - $b); //
// Tried: return $a >= $b; //
});
print_r($arr);
?>
Pitfall: поскольку ключи упорядочены в исходном массиве, не пытайтесь предлагать любую сортировку по ключу, чтобы восстановить исходный порядок. Я сделал пример с ними, чтобы им было проще визуально проверить их порядок на выходе.