了解str_replace和strtr在php中的工作原理 $search=array('A','B','C','D','E'); $replace=数组('B','C','D','E','F'); $subject='A'; $trans=array('A'=>'B','B'=>'C','C'=>'D','D'=>'E','E'=>'F'); echo str_replace($search,$replace,$subject); 回声“”; echo strtr($subject,$trans); 产出:F B

了解str_replace和strtr在php中的工作原理 $search=array('A','B','C','D','E'); $replace=数组('B','C','D','E','F'); $subject='A'; $trans=array('A'=>'B','B'=>'C','C'=>'D','D'=>'E','E'=>'F'); echo str_replace($search,$replace,$subject); 回声“”; echo strtr($subject,$trans); 产出:F B,php,string,Php,String,当使用str_replace时,我得到F,使用strtr时,我得到B 就我所知,对于str_replace:它从左到右替换,因此A被替换为B,而不标记位置已经被替换,因此再次找到B,它被C替换,以此类推得到值F 对于strtr:我用B替换A,并记住它已在该位置替换 我的理解正确吗?有人能给我解释一下吗?是的,没错str_replace()按顺序进行替换,而strtrtr()只对字符串中的每个字符进行一次替换。您理解正确。 $search = array('A', 'B', 'C', 'D',

当使用str_replace时,我得到F,使用strtr时,我得到B

就我所知,对于str_replace:它从左到右替换,因此A被替换为B,而不标记位置已经被替换,因此再次找到B,它被C替换,以此类推得到值F

对于strtr:我用B替换A,并记住它已在该位置替换


我的理解正确吗?有人能给我解释一下吗?

是的,没错
str_replace()
按顺序进行替换,而
strtrtr()
只对字符串中的每个字符进行一次替换。

您理解正确。
 $search  = array('A', 'B', 'C', 'D', 'E');
 $replace = array('B', 'C', 'D', 'E', 'F');
 $subject = 'A';
 $trans = array('A' => 'B','B'=>'C','C'=>'D','D'=>'E','E'=>'F');
 echo str_replace($search, $replace, $subject);
 echo "<br/>";
 echo strtr($subject,$trans);

 Output: F
         B