Добрый день!
Помогите разобраться с сортировкой.
Я имею массив вида:
Array
(
[SOME_RANDOM_INTEGER_VALUE_1] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_1
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 2
[1] => 90
)
)
[SOME_RANDOM_INTEGER_VALUE_2] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_2
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 2
[1] => 45
)
)
[SOME_RANDOM_INTEGER_VALUE_3] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_3
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 3
[1] => 2
)
)
[SOME_RANDOM_INTEGER_VALUE_4] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_3
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 3
[1] => 1
)
)
[SOME_RANDOM_INTEGER_VALUE_5] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_3
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 1
[1] => 0
)
)
)
И мне необходимо преобразовать его в следующий:
Array
(
[SOME_RANDOM_INTEGER_VALUE_3] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_3
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 3
[1] => 2
)
)
[SOME_RANDOM_INTEGER_VALUE_4] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_3
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 3
[1] => 1
)
)
[SOME_RANDOM_INTEGER_VALUE_1] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_1
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 2
[1] => 90
)
)
[SOME_RANDOM_INTEGER_VALUE_2] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_2
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 2
[1] => 45
)
)
[SOME_RANDOM_INTEGER_VALUE_5] => Array
(
[ID] => SOME_RANDOM_INTEGER_VALUE_3
[SORTING_INFO_ALL_STARS] => Array
(
[0] => 1
[1] => 0
)
)
)
SOME_RANDOM_INTEGER_VALUE_* - это ID позиции, может принимать практически любые значения.
Пробую отсортировать массивы по двум параметрам:
1) [SOME_RANDOM_INTEGER_VALUE_*]
[SORTING_INFO_ALL_STARS][0] - значение первой сортировки (от большего к меньшему);
2) [SOME_RANDOM_INTEGER_VALUE_*]
[SORTING_INFO_ALL_STARS][1] - от большего к меньшему, но, расставить их в общем массиве необходимо уже, в зависимости от [SORTING_INFO_ALL_STARS][0]
То есть, например, так:
[3][3] , [3][2] , [2][3] , [2][0] , [1][4] , [1][3] , [1][2] и т.п.
Пробовал разобраться с помощью
usort и
array-multisort, к сожалению, безуспешно. Не могу понять, как получение значение [SORTING_INFO_ALL_STARS], обойдя [SOME_RANDOM_INTEGER_VALUE_*], но при это переместить [SOME_RANDOM_INTEGER_VALUE_*] выше или ниже...
Как по мне такая сортировка достаточна специфична и не хотелось бы создавать отдельный массив с ID элемента и значением свойства и сортировать этот массив...