如何使用带有多个参数的函数的array_map?

时间:2013-06-11 08:51:14

标签: php arrays str-replace array-map

我有一个包含下划线 _ 的字符串的数组,我需要使用str_replace用空格替换下划线,我想用 array_map()

array_map 可以使用只包含一个参数的函数,但 str_replace 需要三个参数:

  1. 替换内容
  2. 将其替换为
  3. 字符串
  4. 我可以完美地使用foreach循环来执行以下操作,但我想知道如何使用 array_map 来执行此操作。我做了一些关于谷歌和stackoverflow的看法,但我找不到解决方案。

    这是我拥有的数组的一个例子

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

3 个答案:

答案 0 :(得分:0)

这个问题的一个简单解决方案是创建一个包装函数,该函数使用str_replace以您希望的格式返回一个字符串,然后将其映射到数组。

虽然如果您阅读文档,它会说:“回调函数接受的参数数量应该与传递给array_map()的数组的数量相匹配”

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

所以你想做array_map(“function”,array_you_want_changed,array_of_paramters);

http://php.net/manual/en/function.array-map.php

见例3。

答案 1 :(得分:0)

以下是解决问题的方法。

$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);

答案 2 :(得分:0)

您可以尝试这样

<?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);
?>