@andrey_levushkin

Как отсортировать массив по ключу?

Да. Подобные вопросы уже были, пробовал несколько вариантов - не вышло.
Массив вида:
$mainMenu = array(
    array(
        'title' => 'Главная',
        'path' => '/',
        'sort' => 0
    ),
    array(
        'title' => 'О нас',
        'path' => '/route/about/',
        'sort' => 2
    ),
    array(
        'title' => 'Новости',
        'path' => '/route/news/',
        'sort' => 1
    ),
    array(
        'title' => 'Каталог',
        'path' => '/route/catalog/',
        'sort' => 4
    ),
    array(
        'title' => 'Контакты',
        'path' => '/route/contact/',
        'sort' => 5
    ),
    array(
        'title' => 'Поддержать проект',
        'path' => '/route/donate/',
        'sort' => 3
    )
);


Нужно отсортировать его по возрастанию ключч 'sort'
Чтобы вышло:
$mainMenu = array(
    array(
        'title' => 'Главная',
        'path' => '/',
        'sort' => 0
    ),
    array(
        'title' => 'Новости',
        'path' => '/route/news/',
        'sort' => 1
    ),
    array(
        'title' => 'О нас',
        'path' => '/route/about/',
        'sort' => 2
    ),
    array(
        'title' => 'Поддержать проект',
        'path' => '/route/donate/',
        'sort' => 3
    ),
    array(
        'title' => 'Каталог',
        'path' => '/route/catalog/',
        'sort' => 4
    ),
    array(
        'title' => 'Контакты',
        'path' => '/route/contact/',
        'sort' => 5
    )
);
  • Вопрос задан
  • 44 просмотра
Решения вопроса 3
toxa82
@toxa82
usort($array, function ($a, $b) {
    return $a['sort'] <=> $b['sort'];
});
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Как отсортировать многомерный массив в php?

array_multisort(array_column($mainMenu, 'sort'), SORT_ASC, $mainMenu);
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
usort(
  $array,
  function ($a, $b) {
    return $a['sort'] - $b['sort'];
  }
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы