str_replace()に配列を渡した際の挙動が面白かったのでメモ。
下記コードを実行すると結果は「B」ではなく「F」となる。
$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()は左から順番に処理されていくんだね!