Функция array_map() в языке PHP

Для работы с массивами данных, представляющими собой один из вариантов хранения информации, когда значения идут по одному либо в паре с ключом, в PHP предусмотрено множество функций, в числе которых присутствует array_map(). Она позволяет применять над PHP-массивами callback-функции, то есть созданные самостоятельно при написании кода для конкретной программы.

Структура

array_map($callable, $array, $arrays_additional);

array_map() принимает следующие параметры:

  • callable – функция, которая будет применена к array и, если указано, ещё и к arrays_additional. Может равняться null в некоторых случаях, тогда результатом применения array_map()будет выступать входной массив.
  • array– массив, на который будет наложена функция callable.
  • arrays_additional(необязательный) – дополнительные массивы, которые будут обрабатываться с помощью callable.

Словом callable называются функции, которые можно написать самостоятельно. Они могут содержать в себе другие функции (собственные и уже предусмотренные), но не поддерживают структурные единицы языка, которыми выступают echo, print, isset, unset и некоторые другие. Численность параметров, передаваемых для callback-функции, должна быть одинаковой с количеством массивов, обрабатываемых посредством array_map().

Callback-функции накладываются на все компоненты массивов, приведённых в array и arrays_additional. Их можно поместить «как есть» либо, что повысит удобность чтения кода и откроет некоторые возможности, посредством переменных, объявленных заранее, до задействования array_map().

array_map() была представлена ещё в PHP 4 и по-прежнему доступна в новейшей, восьмой спецификации языка.

Примеры использования

Арифметические операции

Этот код умножит каждое число, входящее в массив, трижды на само себя (возведёт в куб):

<?php
functiontriple($num){
return ($num * $num * $num);
}

$array = [1, 2, 3, 4, 5, 6, 7];
$array_updated = array_map(‘triple’, $array);
print_r($array_updated);

Вывод входного массива

Если параметр callback равен null, результатом выполнения array_map() станет входной массив. Его можно будет отобразить с помощью print_r():

<?php

$array = array(«Moscow», «Berlin», «London», «Minsk»);
$array_display = array_map(null, $array_display);
print_r($array_display); # Результат: то же самое, что и print_r($array);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *