Я просматриваю функции сортировки массива PHP, чтобы найти способ сделать следующее, но не может справиться с этим.Сортировка массива по значению, оставляющему значение ключа неизменным
Пример
Array (
[77] => 79
[72] => 78
[71] => 78
[82] => 79
[76] => 79
[73] => 78
[75] => 78)
, и я хочу вновь чтобы его
Array (
[72] => 78
[71] => 78
[73] => 78
[75] => 78
[77] => 79
[82] => 79
[76] => 79)
уведомления путь Уважайте ключа порядок они были первоначально в них только расположены в соответствии со значением (так что 77, который был первым в 79, все еще первый в 79 и т. Д.)
Я думал, что он будет работать, но это не
asort($categories);
foreach ($categories as $key => $val) {
echo "$key = $val\n";
echo "<br>";
}
выход (простите, пожалуйста, знак равенства)
74 = 78
85 = 78
75 = 78
73 = 78
70 = 78
71 = 78
72 = 78
82 = 79
86 = 79
81 = 79
77 = 79
80 = 79
76 = 79
разбирать() гарантирует порядок по значению и удержания ключа, но не дает никаких гарантий того, что несколько ключей с то же значение будет упорядочено любым способом –
Алгоритм Quicksort не позволяет обрабатывать это, потому что элементы не обрабатываются последовательно по типу; вам может понадобиться реализовать что-то вроде сортировки пузыря или сортировки слияния вручную –
есть ли определенная причина, в которой вы нуждаетесь в этом конкретном порядке? –