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