array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

array_map - Застосовує callback-функцію до всіх елементів зазначених масивів

Опис

array_map(?callable $callback, array $array, array ...$arrays): array

Функцияarray_map() повертає масив (array), що містить результати застосування callback-функції до відповідного елементу arrayarrays, якщо вказано більше масивів), що використовується як аргумент callback-функції. Кількість параметрів, що передаються callback-функції, що має збігатися з кількістю масивів, переданою функції array_map(). Зайві вхідні масиви ігноруються. Якщо надано недостатню кількість аргументів, викидається ArgumentCountError

Список параметрів

callback

callable, що застосовується до кожного елемента у кожному масиві.

null може бути переданий як значення callback для виконання zip операції з кількома масивами. Якщо вказано тільки array array_map() поверне вхідний масив.

array

Массив, к которому применяетсяcallback-функція.

arrays

Додаткові масиви для обробки callback-функцією.

Значення, що повертаються

Повертає масив, що містить результати застосування callback-функції до відповідного елементу arrayarrays, якщо вказано більше масивів), що використовується як аргумент для callback-функції.

Повернений масив збереже ключі аргументу масиву тоді і лише тоді, коли буде передано рівно один масив. Якщо передано більше одного масиву, повернутий масив матиме послідовні цілі ключі.

список змін

ВерсияОпис
8.0.0Тепер функція видасть помилку рівня E_WARNING, якщо параметр callback-функції, переданої у параметр callback, очікує на передачу значення за посиланням.

Приклади

Приклад #1 Приклад використання array_map()****

Loading...

В результаті змінна $b міститиме:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Приклад #2 Использованиеarray_map()вместе с лямбда-функцией

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

Приклад #3 Приклад використання array_map(): обробка кількох масивів

Loading...

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

// вывод $c
Array
(
    [0] => Число 1 по-испански - uno
    [1] => Число 2 по-испански - dos
    [2] => Число 3 по-испански - tres
    [3] => Число 4 по-испански - cuatro
    [4] => Число 5 по-испански - cinco
)

// вывод $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Зазвичай при обробці двох або більше масивів вони мають однакову довжину, так як callback-функція застосовується паралельно до відповідних елементів масивів. Якщо масиви мають різну довжину, більш короткі їх доповнюється елементами з порожніми значеннями до довжини найдовшого масиву.

Цікавим ефектом при використанні цієї функції є створення масиву масивів, що може бути досягнуто шляхом використання значення **null**в качестве имени callback-функции.

Приклад #4 Виконання zip операції з масивами

Loading...

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

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Приклад #5null** callback тільки з array**

Loading...

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

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Приклад #6 Использованиеarray_map()** з рядковими ключами**

Loading...

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

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Приклад #7array_map()** - асоціативні масиви**

Хотяarray_map() безпосередньо не підтримує використання ключа масиву як вхідні дані, це можна змоделювати за допомогою array_keys()

Loading...

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

array(3) {
  [0]=>
  string(24) "v1 - это Первый выпуск"
  [1]=>
  string(25) "v2 - это Второй выпуск"
  [2]=>
  string(24) "v3 - это Третий выпуск"
}

Дивіться також

  • array_filter() - Фільтрує елементи масиву за допомогою callback-функції
  • array_reduce() - Ітеративно зменшує масив до єдиного значення, використовуючи callback-функцію
  • array_walk() - Застосовує задану користувачем функцію кожного елемента масиву