Почему array_map выдает warning в PHP?

Пользователь

от aubree , в категории: PHP , 7 месяцев назад

Почему array_map выдает warning в PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от willis.streich , 7 месяцев назад

@aubree 

Функция array_map в PHP может выдавать предупреждение (warning), если один или несколько аргументов переданных в функцию не являются массивами. Это происходит потому, что array_map требует, чтобы первый аргумент был функцией, а остальные - массивами, чтобы можно было применить функцию к каждому элементу массива.


Вот пример кода, который может вызвать предупреждение при использовании array_map:

1
2
3
4
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];

$result = array_map(null, $array1, $array2);


В этом примере, вместо функции передается null, что может вызвать предупреждение. Чтобы избежать предупреждения, необходимо передавать только массивы в качестве аргументов, а также передавать в качестве первого аргумента функцию, которая будет применена к каждому элементу массива. Вот пример, как это можно сделать правильно:

1
2
3
4
5
6
7
8
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];

function multiply_by_two($n) {
    return $n * 2;
}

$result = array_map("multiply_by_two", $array1, $array2);


В этом примере, функция multiply_by_two передается как первый аргумент array_map, а массивы $array1 и $array2 передаются как остальные аргументы. Функция multiply_by_two будет применена к каждому элементу массива $array1 и $array2, и результаты будут сохранены в $result.