Этот вопрос фактически вдохновлен другим вопросом здесь, на 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);
?>
Ловушка : поскольку ключи упорядочены в исходном массиве, пожалуйста, не поддавайтесь соблазну предлагать какую-либо сортировку по ключу для восстановления исходного порядка . Я сделал пример с ними, чтобы упростить визуальную проверку их порядка на выходе.