Как разделить строку на уровни вложенности в PHP?

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

1. Разделение строки на массив с помощью функции explode()

Функция explode() позволяет разбить строку на подстроки, используя заданный разделитель. В вашем случае разделителем, который определяет уровни вложенности, может быть, например, точка ".".

Пример кода:

$string = "level1.level2.level3";
$levels = explode(".", $string);
print_r($levels);

Вывод:

Array
(
    [0] => level1
    [1] => level2
    [2] => level3
)

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

2. Разделение строки на многомерный массив с помощью функции array_reduce()

Если вы хотите получить многомерный массив, где каждый уровень вложенности представлен отдельным подмассивом, то можно воспользоваться функцией array_reduce(). Функция array_reduce() применяет указанную функцию к элементам массива последовательно, сокращая массив до одного значения.

Пример кода:

$string = "level1.level2.level3";
$levels = explode(".", $string);

$result = array_reduce($levels, function ($carry, $item) {
    return [$item => $carry];
}, []);

print_r($result);

Вывод:

Array
(
    [level1] => Array
        (
            [level2] => Array
                (
                    [level3] => Array
                        (
                        )
                )
        )
)

В результате выполнения данного кода вы получите многомерный массив $result, где каждый уровень вложенности будет представлен отдельным подмассивом.

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