@Kirill-Gorelov
С ума с IT

Php сформировать массив?

Парни, подскажите кто может. Есть задача следующего характера.

Есть массив данных в БД
5cd80a2d06602776147624.png
Из БД получается такой массив (var_export) https://pastebin.com/fDYcf4MF

Мне его нужно пересобрать что бы он был таким (var_export):
spoiler

array (
'Безопасность' =>
array (
0 => 'Безопасность горожан',
1 => 'Видеонаблюдение',
2 => 'Детская безопасность',
3 => '......',
),
'Благоустройство' =>
array (
0 => 'Благоустройство ВДНХ',
1 => 'Благоустройство водоёмов',
2 => 'Благоустройство дворов',
3 => '.....',
),
)


И у меня не получается, он собирает не так как нужно.
Если есть у кого-то готовая функция, парни, поделитесь, пожалуйста.
Я уже мучаюсь второй день, уже глаз "замылил" не пойму как сделать((
  • Вопрос задан
  • 52 просмотра
Решения вопроса 2
AleksandrB
@AleksandrB
// $p - массив с входными данными
$res = [];
// тут мы перебираем первый раз что бы добавить названия полей
foreach ($p as $items) {
    $res[$items['master_theme']] = [];
}
// второй раз и записываем в эти поля содржимое
foreach ($p as $items) {
    array_push($res[$items['master_theme']], $items['theme']);
}
// наслаждаемся 
print_r($res);
Ответ написан
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
<?php
$arr = [
 8=>array (
    'id' => '9',
    'master_theme' => 'Безопасность',
    'theme' => 'Светофоры',
  ),
  9 =>
  array (
    'id' => '10',
    'master_theme' => 'Безопасность',
    'theme' => 'Экологическая полиция',
  ),
  10 =>
  array (
    'id' => '11',
    'master_theme' => 'Благоустройство',
    'theme' => 'Благоустройство ВДНХ',
  ),
  11 =>
  array (
    'id' => '12',
    'master_theme' => 'Благоустройство',
    'theme' => 'Благоустройство водоёмов',
  ),
];

$res = [];

foreach($arr as $item) $res[$item['master_theme']][] = $item['theme'];

echo '<pre>';
print_r($res);
echo '</pre>';


результат

Array
(
    [Безопасность] => Array
        (
            [0] => Светофоры
            [1] => Экологическая полиция
        )

    [Благоустройство] => Array
        (
            [0] => Благоустройство ВДНХ
            [1] => Благоустройство водоёмов
        )

)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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