用php替换数组中的字符串

hd.*_*hd. 11 php arrays replace str-replace

如何用php替换数组中所有项目的其他字符串的子字符串?我不想使用循环来做到这一点.在PHP中有预定义的功能吗?

编辑:谢谢你的回复,还有一个问题,我怎么能在数组的键上做到这一点?

net*_*der 71

为什么不在没有循环的情况下使用str_replace

$array = array('foobar', 'foobaz');
$out = str_replace('foo', 'hello', $array);
Run Code Online (Sandbox Code Playgroud)

  • 它让我感到奇怪,为什么OP不接受这个.看来他真的不知道他要求的是什么. (7认同)

Nik*_*kiC 19

$array = array_map(
    function($str) {
        return str_replace('foo', 'bar', $str);
    },
    $array
);
Run Code Online (Sandbox Code Playgroud)

但这array_map只是一个隐藏的循环.为什么不使用真正的?

foreach ($array as &$str) {
    $str = str_replace('foo', 'bar', $str);
}
Run Code Online (Sandbox Code Playgroud)

那更容易.


小智 6

这是我发现并成功使用的一个非常好的主意:

function str_replace_json($search, $replace, $subject) 
{
    return json_decode(str_replace($search, $replace, json_encode($subject)), true);
}
Run Code Online (Sandbox Code Playgroud)

它也适用于多维数组.

如果将"true"更改为"false",则它将返回一个对象而不是关联数组.

资料来源:Codelinks