gaisindanil
@gaisindanil
web developer

Как сделать вложенный массив, разбив ключи по маске?

Добрый день, есть массив ввида:
$data = [
    "01" => "Продукция и услуги сельского хозяйства и охоты",
    "01.1" => "Культуры однолетние",
    "01.11" => "Культуры зерновые (кроме риса), зернобобовые, семена масличных культур",
    "01.11.1" => "Пшеница",
    "01.11.11" => "Пшеница твердая",
    "01.11.11.110" => "Пшеница озимая твердая",
    "01.11.11.111" => "Зерно озимой твердой пшеницы"
];


Нужно разбить его так, что бы получиться вот такой массив
$example = [
    "01" => [
        "01.1" => [
            "01.11" => [
                "01.11.1"
            ],
        ]
    ]
];

то есть по такой маске:

XX класс
XX.X подкласс
XX.XX группа
XX.XX.X подгруппа
XX.XX.XX вид
XX.XX.XX.XX0 категория
XX.XX.XX.XXX подкатегория
I ask for help!
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nektopme
Привет!
для затравки

function getNestedArray(array $data) : array
{
    $result = [];
    foreach ($data as $key => $value) {
        $path = explode('.', $key);
        $current = &$result;
        foreach ($path as $part) {
            if (!isset($current[$part])) {
                $current[$part] = [];
            }
            $current = &$current[$part];
        }
    }
    return $result;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы