Php 如何将array_map与接受多个参数的函数一起使用?

Php 如何将array_map与接受多个参数的函数一起使用?,php,arrays,str-replace,array-map,Php,Arrays,Str Replace,Array Map,我有一个数组,其中包含带有下划线或u的字符串,我需要使用str_ureplace将下划线替换为空格,我想使用array_umap来完成 array_map可以采用其中只有一个参数的函数,但str_replace采用三个参数: 替换什么 换成什么 一串 我完全可以使用foreach循环来执行以下操作,但我想知道如何使用array_map来执行。我在google和stackoverflow上做了一些搜索,但找不到解决方案 下面是一个数组的示例 $array = array("12_3","a_bc"

我有一个数组,其中包含带有下划线或u的字符串,我需要使用str_ureplace将下划线替换为空格,我想使用array_umap来完成

array_map可以采用其中只有一个参数的函数,但str_replace采用三个参数:

替换什么 换成什么 一串 我完全可以使用foreach循环来执行以下操作,但我想知道如何使用array_map来执行。我在google和stackoverflow上做了一些搜索,但找不到解决方案

下面是一个数组的示例

$array = array("12_3","a_bc");

这个问题的一个简单解决方案是使用str_replace生成一个包装函数,该函数返回您想要的格式的字符串,然后将其映射到数组

尽管如果您阅读文档,它会说:回调函数接受的参数数量应该与传递给数组映射的数组数量匹配

第三个参数是:要通过回调函数运行的数组参数的变量列表

所以你想做数组映射函数,你想改变的数组,参数的数组


参见示例3。

以下是解决问题的方法

$array = array("12_3","a_bc");

$find = array_fill(0, count($array), '_');
$replace = array_fill(0, count($array), ' ');


$out = array_map('str_replace', $find, $replace ,$array);

print_r($out);
你可以这样试试

<?php
function replace($array)
{
    $replace_res = str_replace('_', ' ', $array);
    return  $replace_res;
}

$array = array("12_3","a_bc");
$result = array_map("replace", $array);
print_r($result);
?>

重复的好标题,这是不是真的很清楚,它涉及到我的问题,只是身体。你不能指望我找到这样一个标题真的…如果你搜索'数组\地图',你会得到大量的例子!我的错。下次将进行更广泛的搜索。