Array_map()
Glossary overview

Array_map()

array_map() применяет функцию (callback) ко всем элементам массива и возвращает новый массив, где каждый элемент — это результат вызова функции.

Синтаксис

array_map(callable $callback, array $array, array ...$arrays): array
  • $callbackфункция, которая применяется к каждому элементу.
  • $array — один или несколько массивов.
  • Возвращает новый массив с результатами.

Простой пример: Удвоить все значения

$numbers = [1, 2, 3, 4];

$result = array_map(function($n) {
    return $n * 2;
}, $numbers);

print_r($result);

// Вывод
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
)

Пример: Приведение к верхнему регистру

$names = ["alice", "bob", "charlie"];

$upper = array_map('strtoupper', $names);

print_r($upper);


// Вывод
Array
(
    [0] => ALICE
    [1] => BOB
    [2] => CHARLIE
)

Пример с двумя массивами

Если передаётся несколько массивов, то элементы с одинаковыми индексами объединяются и передаются в callback.

$a = [1, 2, 3];
$b = [4, 5, 6];

$result = array_map(function($x, $y) {
    return $x + $y;
}, $a, $b);

print_r($result);

// Вывод
Array
(
    [0] => 5
    [1] => 7
    [2] => 9
)

Пример: Форматирование данных

$users = ['Alice', 'Bob', 'Charlie'];

$result = array_map(function($name) {
    return "Hello, $name!";
}, $users);

print_r($result);

// Вывод
Array
(
    [0] => Hello, Alice!
    [1] => Hello, Bob!
    [2] => Hello, Charlie!
)

Пример с проекта PurplePlanet.

Функция array_map() проходит по всем элементам массива $solutions и применяет анонимную функцию ко каждому элементу. Эта функция собирает данные о каждом посте в виде массива.

Внутри анонимной функции для каждого поста собираются различные данные.

Когда использовать array_map()

✅ Хочешь преобразовать массив и получить новый массив
✅ Нужен одинаковый эффект на каждый элемент
✅ Надо быстро обработать массив без foreach