Ищите функцию, похожую на array_map, но которая каждый раз возвращает один и тот же аргумент для обратного вызова

Как человек, который изучает PHP, я экспериментировал с функцией arrap_map. Я надеялся, что он будет передавать один и тот же третий аргумент каждый раз через вызываемую функцию. Как показано ниже, это не поведение array_map. Есть ли альтернативная функция, которую я могу использовать для достижения этой цели?

$arr = [['a'], ['b'], ['c']];
$args = ['set'];

function mapper($item, $arg){
return $item[] = $arg;
}
$result = array_map('mapper', $arr, $args);

только первый элемент имеет значение ‘set’ в качестве значения

 $arr = [['a'], ['b'], ['c']];
$args = ['set', 'set', 'set'];

function mapper($item, $arg){
return $item[]  = $arg;
}

$result = array_map('mapper', $arr, $args);

все три элемента имеют «установить» в качестве значения

0

Решение

Ваш код неверен, $a[$b] не имеет никакого смысла. Обе переменные являются строками.

Ваш вывод также не имеет смысла, цитируя из руководства:

Если передано более одного аргумента, то возвращаемый массив всегда имеет
целочисленные ключи.


Чтобы ответить на ваш вопрос, это выбор языка дизайна.

Это могло бы

  • передайте NULL для отсутствующих элементов (что было в PHP).
  • выдает ошибку, если входные данные не имеют одинаковый размер.
  • цикл меньших входов.

Все они имеют действительные приложения и свои проблемы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]