mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) 

 该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。

 之前一直以为str_replace 只能字符串有效果,今天在看手册时发现,对一维数组value同样有效

参数

如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。

如果 search 和 replace 都是数组,它们的值将会被依次处理。

search
查找的目标值,也就是 needle。一个数组可以指定多个目标。

replace
search 的替换值。一个数组可以被用来指定多重替换。

subject
执行替换的数组或者字符串。也就是 haystack。

如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。

count
如果被指定,它的值将被设置为替换发生的次数。

 如果是数组,只能一维数组的value有效

测试代码如下

$str = 'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA';

  $array = [
    'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA',
    'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA',
    'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA',
    'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA',
    'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA',
    'AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA'=>['AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA','AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA']

  ];
  show(str_replace("A","替",$str));
  show(str_replace("A","替",$array));

结果如下

替替替BBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJ替替替

Array
(

[0] => 替替替BBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJ替替替
[1] => 替替替BBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJ替替替
[2] => 替替替BBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJ替替替
[3] => 替替替BBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJ替替替
[4] => 替替替BBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJ替替替
[AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA] => Array
    (
        [0] => AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA
        [1] => AAABBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJJAAA
    )

)