1

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

array_map可以接受只有一个参数的函数,但str_replace接受三个参数:

  1. 更换什么
  2. 换成什么
  3. 细绳

我可以完美地使用 foreach 循环来执行以下操作,但我想知道如何使用array_map来做到这一点。我在 google 和 stackoverflow 上做了一些查找,但找不到解决方案。

这是我拥有的数组的示例

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

3 回答 3

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。

于 2013-06-11T08:54:40.033 回答
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);
于 2013-06-11T08:58:29.913 回答
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);
?>
于 2013-06-11T09:03:16.787 回答