За последние 24 часа нас посетили 22787 программистов и 1211 роботов. Сейчас ищут 669 программистов ...

Сортировка массива по ключу

Тема в разделе "PHP для новичков", создана пользователем wade003, 31 авг 2020.

  1. wade003

    wade003 Новичок

    С нами с:
    13 мар 2019
    Сообщения:
    30
    Симпатии:
    1
    Здравствуйте! Подскажите пожалуйста как отсортировать данный массив по ключу category_id
    Код (Text):
    1. Array
    2. (
    3.  
    4.     [0] => Array
    5.         (
    6.             [id] => 21
    7.             [category_id] => 2
    8.             [name] => Samsung
    9.         )
    10.  
    11.     [1] => Array
    12.         (
    13.             [id] => 22
    14.             [category_id] => 2
    15.             [name] => Apple
    16.         )
    17.  
    18.  
    19.     [2] => Array
    20.         (
    21.             [id] => 32
    22.             [category_id] => 3
    23.             [name] => Мониторы
    24.         )
    25.  
    26.  
    27.     [3] => Array
    28.         (
    29.             [id] => 33
    30.             [category_id] => 3
    31.             [name] => Корпус для ПК
    32.         )
    33.  
    34. )
    35. В массив такого вида
    36.  
    37. Array
    38. (
    39.  
    40.     [2] => Array
    41.     (
    42.         [0] => Array
    43.             (
    44.                 [id] => 21
    45.                 [name] => Samsung
    46.             )
    47.  
    48.         [1] => Array
    49.             (
    50.                 [id] => 22
    51.                 [name] => Apple
    52.             )
    53.     )
    54.  
    55.  
    56.     [3] => Array
    57.     (
    58.         [0] => Array
    59.         (
    60.             [id] => 32
    61.             [name] => Мониторы
    62.         )
    63.  
    64.         [1] => Array
    65.         (
    66.             [id] => 33
    67.             [name] => Корпус для ПК
    68.         )
    69.     )
    70.  
    71. )
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
  3. wade003

    wade003 Новичок

    С нами с:
    13 мар 2019
    Сообщения:
    30
    Симпатии:
    1
    Не могу найти ответ.
    Мне нужно сгрупировать данные массива по ключу [category_id]
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    http://phpfaq.ru/pdo/fetch#FETCH_UNIQUE
    --- Добавлено ---
    ожидание ответа в готовом формате ?
     
    wade003 нравится это.
  5. wade003

    wade003 Новичок

    С нами с:
    13 мар 2019
    Сообщения:
    30
    Симпатии:
    1
    Ваша ссылка почему-то не открывается
    Пробовал
    $result->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
    но результата нет

    PHP:
    1. public static function getSubcategoriesList()
    2.     {
    3.         $db = Db::getConnection();
    4.  
    5.         $subcategoriesList = array();
    6.  
    7.         $result = $db->query('SELECT id, category_id, name FROM subcategories ORDER BY sort_order ASC');
    8.         $result->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
    9.         $i = 0;
    10.         while($row = $result->fetch()){
    11.             $subcategoriesList[$i]['id'] = $row['id'];
    12.             $subcategoriesList[$i]['category_id'] = $row['category_id'];
    13.             $subcategoriesList[$i]['name'] = $row['name'];
    14.             $i++;
    15.         }
    16.         return $subcategoriesList;
    17.     }
    --- Добавлено ---
    Если можете в готовом формате буду благодарен
     
  6. wade003

    wade003 Новичок

    С нами с:
    13 мар 2019
    Сообщения:
    30
    Симпатии:
    1
    Вот что работает для моего случая
    PHP:
    1. public static function getSubcategoriesList()
    2.     {
    3.         $db = Db::getConnection();
    4.  
    5.         $result = $db->query('SELECT category_id, id, name FROM subcategories ORDER BY sort_order ASC')->fetchAll(PDO::FETCH_GROUP);
    6.        
    7.         return $result;
    8.     }
    --- Добавлено ---
    @MouseZver спс за наводку