str_replace()に配列を渡した際の挙動が面白かったのでメモ。
下記コードを実行すると結果は「B」ではなく「F」となる。
1 2 3 4 | $search = array ( 'A' , 'B' , 'C' , 'D' , 'E' ); $replace = array ( 'B' , 'C' , 'D' , 'E' , 'F' ); $subject = 'A' ; echo str_replace ( $search , $replace , $subject ); |
上記の場合「A」の置換文字列としてマッピングされているものは「B」であるが、
「B」に置換されたあと、すかさず「C」に置換されるため、
この挙動が連鎖していき最終的に「F」となる。
str_replace()は左から順番に処理されていくんだね!