Как отсортировать ассоциативный массив по весу И типу?
Ввод
array(
'a' => array( 'type' => 't1', 'weight' => 1, 'text' => 'text1' ),
'b' => array( 'type' => 't1', 'weight' => 3, 'text' => 'text2' ),
'c' => array( 'type' => 't2', 'weight' => 5, 'text' => 'text3' ),
'd' => array( 'type' => 't1', 'weight' => 2, 'text' => 'text4' ),
'e' => array( 'type' => 't2', 'weight' => 4, 'text' => 'text5' ),
'f' => array( 'type' => 't2', 'weight' => 4, 'text' => 'text6' )
);
Желаемый результат
array(
'a' => array( 'type' => 't1', 'weight' => 1, 'text' => 'text1' ),
'd' => array( 'type' => 't1', 'weight' => 2, 'text' => 'text4' ),
'b' => array( 'type' => 't1', 'weight' => 3, 'text' => 'text2' ),
'e' => array( 'type' => 't2', 'weight' => 1, 'text' => 'text5' ),
'f' => array( 'type' => 't2', 'weight' => 1, 'text' => 'text6' ),
'c' => array( 'type' => 't2', 'weight' => 5, 'text' => 'text3' )
);
Тип «t2» должен находиться в конце массива, все остальные типы — в начале.
Вес должен быть равен сортируется по типу.
Я использую uasort со специальной функцией сравнения, но у меня возникают трудности. Вот что у меня есть, но не работает:
function my_comparer($a, $b) {
return ( $a['type'] !== 't2' && $b['type'] === 't2' )
? -1
: $a['weight'] - $b['weight'];
}
Подробнее здесь: https://stackoverflow.com/questions/565 ... en-another
Сортировка двумерного массива по одному столбцу, затем по другому [дубликат] ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сортировка двумерного массива по одному столбцу, а затем по другому столбцу [дубликат]
Anonymous » » в форуме Php - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Сортировка 2d-массива по одному столбцу, а затем по другому столбцу [дубликат]
Anonymous » » в форуме Php - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-