Как сортировать массив по значению?

281
22 ноября 2017, 00:27

Есть массив:

array(3) {
[0] => array(1) {
    [3] => array(5) {
        ["id"] => string(1)
        "7" ["name"] => string(4)
        "Тест3" ["weight"] => int(3)["mincount"] => string(1)
        "8" ["maxcount"] => string(2)
        "40"
    }
}[1] => array(1) {
    [5] => array(5) {
        ["id"] => string(1)
        "9" ["name"] => string(23)
        "Тест5" ["weight"] => int(3)["mincount"] => string(2)
        "12" ["maxcount"] => string(3)
        "300"
    }
}[2] => array(1) {
    [10] => array(5) {
        ["id"] => string(2)
        "14" ["name"] => string(12)
        "Тест10" ["weight"] => int(1)["mincount"] => string(2)
        "20" ["maxcount"] => string(2)
        "40"
    }
}}

Нужно его отсортировать по полю weight, чтобы большее стояло в начале. Пробовал с usort, пока не совсем разобрался как работает. Подскажите как решить данную задачку.

Answer 1

Можно воспользоваться array_multisort

$weights = array_map(function($i) { return current($i)['weight'];}, $arr);
array_multisort($weights, SORT_DESC, SORT_NUMERIC, $arr);
print_r($arr); 

demo

READ ALSO
Объединяем массив

Объединяем массив

Добрый день, имею массив вида:

214
Как вырезать целый тег?

Как вырезать целый тег?

Как вырезать например все теги вместе с его содержимым ? и заменить на текст 'hoo'

242
Помогите задать жирный текст в php word

Помогите задать жирный текст в php word

Добрый день! Знаю вопрос звучит глупо, но подскажите как можно задать жирный текст Использую PHPWord, генерирую документ по шаблону и в определенном...

224
Сохранение итераторов в multimap

Сохранение итераторов в multimap

Есть multimap<size_t, string> можно ли сделать что то на подобии multimap<size_t, iterator> чтобы хранить Итераторы на multimap<size_t, string>?

229