РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1126 of 1392 menu

Метод undot

Метод undot класса Arr преобразует плоский массив, в котором ключи содержат точки для обозначения вложенности, обратно в многомерный массив. Первым параметром передаётся исходный плоский массив, вторым параметром можно указать разделитель (по умолчанию используется точка). Метод возвращает новый многомерный массив.

Синтаксис

<?php use Illuminate\Support\Arr; $res = Arr::undot($array); ?>

Пример

Давайте преобразуем плоский массив с точечными ключами обратно в многомерный:

<?php use Illuminate\Support\Arr; $array = [ 'name' => 'John', 'age' => 25, 'address.city' => 'New York', 'address.street' => 'Main St', 'address.zip' => 10001 ]; $res = Arr::undot($array); print_r($res); ?>

Результат выполнения кода:

Array ( [name] => John [age] => 25 [address] => Array ( [city] => New York [street] => Main St [zip] => 10001 ) )

Пример

Давайте используем кастомный разделитель вместо точки:

<?php use Illuminate\Support\Arr; $array = [ 'user-name' => 'John', 'user-age' => 25, 'user-address-city' => 'New York' ]; $res = Arr::undot($array, '-'); print_r($res); ?>

Результат выполнения кода:

Array ( [user] => Array ( [name] => John [age] => 25 [address] => Array ( [city] => New York ) ) )

Пример

Давайте преобразуем массив с несколькими уровнями вложенности:

<?php use Illuminate\Support\Arr; $array = [ 'user.profile.name' => 'John', 'user.profile.age' => 25, 'user.settings.theme' => 'dark', 'user.settings.language' => 'en' ]; $res = Arr::undot($array); print_r($res); ?>

Результат выполнения кода:

Array ( [user] => Array ( [profile] => Array ( [name] => John [age] => 25 ) [settings] => Array ( [theme] => dark [language] => en ) ) )

Пример

Давайте используем метод undot для создания структуры с числовыми ключами:

<?php use Illuminate\Support\Arr; $array = [ 'categories.0.name' => 'Technology', 'categories.0.id' => 1, 'categories.1.name' => 'Science', 'categories.1.id' => 2 ]; $res = Arr::undot($array); print_r($res); ?>

Результат выполнения кода:

Array ( [categories] => Array ( [0] => Array ( [name] => Technology [id] => 1 ) [1] => Array ( [name] => Science [id] => 2 ) ) )

Смотрите также

  • метод dot,
    который преобразует многомерный массив в плоский с точечными ключами
  • метод get,
    который получает значение из массива по точечному ключу
  • метод set,
    который устанавливает значение в массив по точечному ключу
  • метод forget,
    который удаляет элемент из массива по точечному ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить