Почему array_map терпит неудачу здесь?

Я пытаюсь применить функцию к массиву животных. Я хочу подбодрить их.

$arr = array('cat', 'dog');

function makemebold($item)
{
return "<b>$item</b>"; // or something more interesting...
}

Давайте проверим оригинальный массив:

// dump original array
var_dump($arr); echo '<br>';

Возвращает:

array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" }

Теперь давайте применим массив:

array_map($arr, 'makemebold');
var_dump($arr); echo '<br>';

Ничего не делая:

array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" }

Теперь array_walk:

array_walk($arr, 'makemebold');
var_dump($arr); echo '<br>';

То же, что и выше — без изменений:

array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" }

Что я делаю неправильно?

0

Решение

array_map не изменяет входной массив, он возвращает новый массив с результатами вызова функции для каждого элемента ввода.

$bold_arr = array_map('makemebold', $arr);
var_dump($bold_arr); echo '<br>';
1

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

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