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

Метод map класса Arr

Метод map класса Arr применяется для преобразования всех элементов массива с помощью переданного замыкания. В качестве первого параметра передаётся исходный массив, вторым параметром - замыкание, которое получает значение и ключ элемента, а возвращает преобразованное значение. Метод возвращает новый массив с преобразованными элементами, сохраняя исходные ключи.

Синтаксис

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

Пример

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

<?php use Illuminate\Support\Arr; $arr = [1, 2, 3, 4, 5]; $res = Arr::map($arr, function($value) { return $value * 2; }); print_r($res); ?>

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

Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )

Пример

Давайте преобразуем ассоциативный массив, добавив префикс к значениям:

<?php use Illuminate\Support\Arr; $arr = ['a' => 'abc', 'b' => 'def', 'c' => 'ghi']; $res = Arr::map($arr, function($value, $key) { return $key . '_' . $value; }); print_r($res); ?>

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

Array ( [a] => a_abc [b] => b_def [c] => c_ghi )

Пример

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

<?php use Illuminate\Support\Arr; $arr = ['abcde', 'article', 'user', 'category']; $res = Arr::map($arr, function($value) { return strlen($value); }); print_r($res); ?>

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

Array ( [0] => 5 [1] => 7 [2] => 4 [3] => 8 )

Пример

Давайте используем map с данными из модели. Преобразуем массив пользователей, оставив только их имена с большой буквы:

<?php use Illuminate\Support\Arr; use App\Models\User; $users = User::select('name')->limit(3)->get()->toArray(); $names = Arr::map($users, function($user) { return ucfirst($user['name']); }); print_r($names); ?>

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

Array ( [0] => John [1] => Jane [2] => Bob )

Пример

Давайте преобразуем массив, обработав вложенные массивы:

<?php use Illuminate\Support\Arr; $arr = [ ['id' => 1, 'value' => 10], ['id' => 2, 'value' => 20], ['id' => 3, 'value' => 30], ]; $res = Arr::map($arr, function($item) { return $item['value'] * 1.5; }); print_r($res); ?>

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

Array ( [0] => 15 [1] => 30 [2] => 45 )

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

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