Группа данных PHP MySQL

У меня есть данные sql следующим образом:

+++++++++++++++++++++++++++++++++
+ id        name          group +
+  1        cs1           1,2   +
+  2        cs2           1,3   +
+  3        cs3           2,3   +
+++++++++++++++++++++++++++++++++

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

Я хочу, чтобы результат был:

++++++++++++++++++++++++++++++++
+group                members  +
+   1                 cs1      +
+                     cs2      +
+   2                 cs2      +
+                     cs3      +
+   3                 cs2      +
+                     cs3      +
++++++++++++++++++++++++++++++++

или

$group1 = array (cs1, cs2);

Мы высоко ценим ваши ценные идеи.

Спасибо.

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

Lelio Faieta 03.10.2018 09:42

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

RiggsFolly 03.10.2018 09:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
47
1

Ответы 1

Используя PHP, вы можете читать данные, получать группы, а затем находить каждого члена, чтобы построить массив сопоставления групп с членами ...

$data = [
    [
        'id'    => 1,
        'name'  => 'cs1',
        'group' => '1,2'
    ],
    [
        'id'    => 2,
        'name'  => 'cs2',
        'group' => '1,3'
    ],
    [
        'id'    => 3,
        'name'  => 'cs3',
        'group' => '2,3'
    ]
];

$groups = [];
foreach ($data as $item) {
    foreach (explode(',', $item['group']) as $group) {
        $groups[] = $group;
    }
}
$groups = array_unique($groups);
sort($groups);
$group_members = [];
foreach ($groups as $group) {
    $group_members[$group] = [];
    foreach ($data as $item) {
        if (strpos(",{$item['group']},", ",{$group},") !== false) {
            $group_members[$group][] = $item['name'];
        }
    }
}
var_dump($group_members);

Другие вопросы по теме