带有str_replace的array_map

Liz*_*ard 23 php array-map str-replace

是否可以array_mapstr_replace不调用其他函数的情况下结合使用str_replace

例如:
array_map(str_replace(' ', '-', XXXXX), $myArr);

chi*_*org 58

不需要array_map.从文档:"如果subject是一个数组,那么搜索和替换是对主题的每个条目执行的,返回值也是一个数组."


bin*_*yLV 12

不,这是不可能的.但是,如果您使用的是PHP 5.3,则可以执行以下操作:

$data = array('foo bar baz');
$data = array_map(function($value) { return str_replace('bar', 'xxx', $value); }, $data);
print_r($data);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => foo xxx baz
)
Run Code Online (Sandbox Code Playgroud)


sal*_*the 7

当然有可能,您只需要array_map()为回调函数提供正确的输入.

array_map(
    'str_replace',            // callback function (str_replace)
    array_fill(0, $num, ' '), // first argument    ($search)
    array_fill(0, $num, '-'), // second argument   ($replace)
    $myArr                    // third argument    ($subject)
);
Run Code Online (Sandbox Code Playgroud)

但是对于问题中的特定例子,正如chiborg所说,没有必要.str_replace()很高兴能在一系列字符串上工作.

str_replace(' ', '-', $myArr);
Run Code Online (Sandbox Code Playgroud)