为什么array_map在这里失败?

时间:2014-12-09 20:29:32

标签: php 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:

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" } 

我做错了什么?

1 个答案:

答案 0 :(得分:1)

array_map不修改输入数组,它返回一个新数组,其结果是在输入的每个元素上调用函数。

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