@qviktor

Как отсортировать массив?

По API получаем массив такого вида:

Array
(
    [response] => Array
        (
            [0] => Array
                (
                    [id] => 123456
                    [name] => 'name'
                    [is_closed] => 0
                    [members_count] => 3583
                    [photo_200] => 'photo url'
                )
            [1] => Array
                (
                    [id] => 123457
                    [name] => 'name'
                    [is_closed] => 0
                    [members_count] => 5214
                    [photo_200] => 'photo url'
                )
            [2] => Array
                (
                    [id] => 123458
                    [name] => 'name'
                    [is_closed] => 0
                    [members_count] => 235
                    [photo_200] => 'photo url'
                )


Как отсортировать массив в порядке возрастания по ключу members_count?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 4
С помощю функции uasort
$array = [
[
    'id' => 123456
    'name' => 'name'
    'is_closed' => 0
    'members_count' => 3583
    'photo_200' => 'photo url'
]];
uasort($array, function($a, $b) {
    return ($a['members_count'] <=> $b['members_count']);
})

НО если ты берешь это с бд, при запросе легче будет добавить orderBy
Ответ написан
@bagzon
Backend PHP, NodeJs, JS
usort
Ответ написан
Комментировать
php.net/manual/ru/function.ksort.php первая пользовательская заметка
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
надо переиндексировать его по members_count, а потом уже сортировать
function reIndex($arr,$key){
    $result = [];
    foreach($arr as $one){
        $result[$one[$key]][] = $one;
    }
    return $result;
}

$ar = reIndex($myArray['response'],'members_count');
ksort($ar);
print_r($ar);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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