一次理解透彻,下次遇到不再成为磕绊。

  str_replace($search,$replace,$string,$count)

例一

$a = str_replace(array("a", "p"), array("apple", "pear", "banana"), "I like eat apple && b.");

该函数执行过程:遍历数组array(‘a’,‘b’),第一遍查找第一个元素a字串做映射替换,替换成apple,得到:I like eapplet applepple && b.  ;然后第二遍查找第二个元素p字串做映射替换,替换成pear,得到:I like eapearpearlet apearpearlepearpearle && b. ;至于一共替换了几次$count,算就可以了。到这里结束,函数会忽略$replace的banana元素。

例二

同理

  1. $a = str_replace(array("a", "p", "b"), array("apple", "pear"), "I like eat apple && b."); 
  2. print_r($a); 
  3. /* 
  4. I like eapplet applepple && b. 
  5. I like eapearpearlet apearpearlepearpearle && b. 
  6. I like eapearpearlet apearpearlepearpearle && . 
  7. */ 

只不过此时$search 元素个数大于$replace元素个数,这种情况作映射替换时默认把$search 中“b”元素无对应元素 对应成空。

还有个官方例子

 

  1. // 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推... 
  2. // 由于从左到右依次替换,最终 E 被 F 替换 
  3. $search  = array('A', 'B', 'C', 'D', 'E'); 
  4. $replace = array('B', 'C', 'D', 'E', 'F'); 
  5. $subject = 'A'
  6. echo str_replace($search, $replace, $subject); 

算注意点吧以前真不知道是这样执行的.....呵呵....总是半知半解。  

函数把A 替换成 B 后并不会停止,还会继续循环。