Функция array_map() в PHP: Полное руководство
Функция array_map в PHP — это важный инструмент для преобразования массивов данных. Она позволяет разработчикам применять функцию обратного вызова к каждому элементу массива и возвращать новый массив с результатами. Это универсальный и мощный метод обработки данных в PHP, который можно использовать в самых разных задачах.
Как работает array_map?
Базовый синтаксис функции array_map выглядит следующим образом:
Синтаксис функции array_map в PHP
array_map(callback, array1, array2, ...);Здесь аргумент callback — это функция, которая будет применена к каждому элементу массивов. Остальные аргументы — это массивы, подлежащие обработке. Например, рассмотрим следующий код:
Пример использования функции array_map в PHP
<?php
$numbers = [1, 2, 3, 4, 5];
function square($n) {
return $n * $n;
}
$squared = array_map('square', $numbers);
print_r($squared);
?>Этот код определяет простую функцию square, которая принимает число и возвращает его квадрат. Затем функция array_map применяется к каждому элементу массива $numbers. В результате получается новый массив $squared, содержащий квадраты исходных чисел.
Примечание о длинах массивов: При передаче нескольких массивов в array_map обработка продолжается до исчерпания самого длинного массива. Если массивы имеют разную длину, отсутствующие элементы в более коротких массивах автоматически считаются null.
Примечание о современном синтаксисе: В PHP 7.4+ можно использовать стрелочные функции для лаконичных обратных вызовов. Например: array_map(fn($n) => $n * $n, $numbers);
Примеры использования array_map на практике
Функция array_map чрезвычайно универсальна и может использоваться во многих различных контекстах. Вот несколько примеров, демонстрирующих её возможности:
Преобразование массивов строк
Преобразование массивов строк с помощью функции array_map в PHP
<?php
$words = ['foo', 'bar', 'baz'];
function upper($str) {
return strtoupper($str);
}
$upper_words = array_map('upper', $words);
print_r($upper_words);
?>В этом примере функция array_map используется для преобразования массива строк в верхний регистр. Функция upper принимает строку и возвращает её в верхнем регистре. При применении этой функции к каждому элементу массива $words получается новый массив с заглавными версиями исходных слов.
Объединение массивов с помощью array_map
Объединение массивов с помощью array_map в PHP
<?php
$a = [1, 2, 3];
$b = [10, 20, 30];
function sum($a, $b) {
return $a + $b;
}
$c = array_map('sum', $a, $b);
print_r($c);
?>В этом примере два массива, $a и $b, объединяются в третий массив $c. Функция sum принимает два аргумента и возвращает их сумму. Функция array_map применяется к каждой соответствующей паре элементов в $a и $b. В результате получается новый массив $c, содержащий суммы исходных пар.
Заключение
Функция array_map в PHP — это невероятно мощный инструмент для преобразования массивов данных. Независимо от того, преобразуете ли вы строки в верхний регистр, объединяете массивы или выполняете другие вычисления, array_map идеально подходит для этой задачи. Благодаря гибкому синтаксису и возможности работать с несколькими массивами одновременно, это обязательная к изучению функция для любого разработчика на PHP.
Практика
Что верно относительно функции array_map() в PHP?