«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как сгруппировать строки ассоциативного массива по значению столбца в PHP?

Как сгруппировать строки ассоциативного массива по значению столбца в PHP?

Опубликовано 20 ноября 2024 г.
Просматривать:434

How to Group Associative Array Rows by Column Value in PHP?

Группировка строк ассоциативного массива по значению столбца

В программировании вы можете столкнуться с ситуациями, когда вам необходимо реорганизовать данные, хранящиеся в ассоциативных массивах. Одной из распространенных задач является группировка строк в массиве по определенному значению столбца с сохранением исходных ключей первого уровня.

Рассмотрим следующий ассоциативный массив ассоциативных массивов, известный как $old_arr:

[
    'a' => ['id' => 20, 'name' => 'chimpanzee'],
    'b' => ['id' => 40, 'name' => 'meeting'],
    'c' => ['id' => 20, 'name' => 'dynasty'],
    'd' => ['id' => 50, 'name' => 'chocolate'],
    'e' => ['id' => 10, 'name' => 'bananas'],
    'f' => ['id' => 50, 'name' => 'fantasy'],
    'g' => ['id' => 50, 'name' => 'football']
]

Цель состоит в том, чтобы создать новый массив $arr, строки которого группируются на основе поля id. Результирующий массив должен выглядеть следующим образом:

array
(
    10 => array
          (
            e => array ( id = 10, name = bananas )
          )
    20 => array
          (
            a => array ( id = 20, name = chimpanzee )
            c => array ( id = 20, name = dynasty )
          )
    40 => array
          (
            b => array ( id = 40, name = meeting )
          )
    50 => array
          (
            d => array ( id = 50, name = chocolate )
            f => array ( id = 50, name = fantasy )
            g => array ( id = 50, name = football )
          )
)

Чтобы добиться этого, вы можете выполнить следующие шаги:

  1. Инициализировать пустой массив $arr.
  2. Перебрать каждую строку в $old_arr.
  3. Используйте значение id в качестве ключа в $arr. Если ключ не существует, создайте новый массив.
  4. Назначьте текущую строку соответствующему ключу в $arr.
  5. Отсортируйте массив $arr по SORT_NUMERIC, чтобы убедиться, что ключи находятся в числовой порядок.

Предоставленный PHP-код использует следующий подход для получения желаемого результата:

$arr = array();

foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}

ksort($arr, SORT_NUMERIC);
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3