Професионална програма
Loading...
miro7975 avatar miro7975 2 Точки

SORTING ASSOCIATIVE ARRAYS IN PHP

Здравейте,

Имам следния проблем, на който не мога да намеря решение - как да сортирам асоциативен масив по низходящ ред
на стойностите, като елемените от масива с еднакви стойности запазят последователността си, който имат в 
несортирания масив, например масивът [ 'A' => 0, 'B' => 1, 'C' => 1, 'D' => 0 ] да стане 
[ 'B' => 1, 'C' => 1, 'A' => 0, 'D' => 0 ]. 
За съжаление с uasort не става. Ако използвам uasort( $arr, function($a,$b){return $b-$a;} ); (където $arr е 
несортираният масив) се получава [ 'C' => 1, 'B' => 1, 'A' => 0, 'D' => 0 ]. Елементите от масива със стойност 0,
се появяват в сортирания масив в същата последователност, както и в стария масив,т.е. първо е този с ключ 'A', а 
след него е този с ключ 'D', но по някаква причина елементите със стойност 1 са в обратен ред - 'C' => 1, 'B' => 1
вместо 'B' => 1, 'C' => 1.

Тагове:
1
PHP Fundamentals
miro7975 avatar miro7975 2 Точки

Да, това е точно, което ми трябва. Мислех си, че може да има някоя друга функция, подобна на uasort, за която е сигурно, че не променя последователността на ключовете при сортиране по стойност, когато стойностите са еднакви, но ако няма, то кодът, който си написал, е най-добрата алтернатива. Благодаря много!

0
28/07/2018 11:03:46