За последние 24 часа нас посетили 35523 программиста и 1819 роботов. Сейчас ищут 843 программиста ...

Сортировка массива

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 1 фев 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    есть массив

    PHP:
    1. (
    2.     [0] => Array
    3.         (
    4.             [id] => 15
    5.             [reyt] => 9
    6.         )
    7.  
    8.     [1] => Array
    9.         (
    10.             [id] => 20
    11.             [reyt] => 5
    12.         )
    13.  
    14.     [2] => Array
    15.         (
    16.             [id] => 21
    17.             [reyt] => 6
    18.         )
    19. )
    как его отсортировать по полю reyt по убыванию.?
     
    #1 Dron-Boy, 1 фев 2017
    Последнее редактирование модератором: 1 фев 2017
  2. ZlobnyKolob

    ZlobnyKolob Активный пользователь

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
  3. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    PHP:
    1. <?php
    2. $arr = [0=>['id'=>19,
    3.             'reyt'=>2
    4.             ],
    5.         1=>['id'=>2,
    6.             'reyt'=>15
    7.             ],
    8.         2=>['id'=>3,
    9.             'reyt'=>5
    10.             ]
    11.     ];
    12. function cmp($a, $b)
    13. {
    14.     if ($a['reyt'] == $b['reyt']) {
    15.         return 0;
    16.     }
    17.     return ($a['reyt'] > $b['reyt']) ? -1 : 1;
    18. }
    19.  
    20. usort($arr, "cmp");
    21.  
    22. print_r($arr);
    Код (Text):
    1. Array
    2. (
    3.     [0] => Array
    4.         (
    5.             [id] => 2
    6.             [reyt] => 15
    7.         )
    8.  
    9.     [1] => Array
    10.         (
    11.             [id] => 3
    12.             [reyt] => 5
    13.         )
    14.  
    15.     [2] => Array
    16.         (
    17.             [id] => 19
    18.             [reyt] => 2
    19.         )
    20.  
    21. )
     
    #3 alexblack, 1 фев 2017
    Последнее редактирование: 1 фев 2017
    Dron-Boy и anderstender нравится это.