phpで文字列の置換はstr_replaceで使ってやっているんだけど
今回は、複数あるから一行で複数文字を置換したいなぁと思って
配列に入れてやってみたらうまくいかない![ガーン](https://stat.ameba.jp/blog/ucs/img/char/char2/141.gif)
なんで
参考にしていた情報が間違ってる感じ![あせる](https://stat.ameba.jp/blog/ucs/img/char/char2/029.gif)
そこでもう一回Google先生に聞いてみたら面白い情報を発見![ひらめき電球](https://stat.ameba.jp/blog/ucs/img/char/char2/089.gif)
文字列置換はstr_replaceだけじゃない。strtrでも可能!
同じ文字列置換ですが実行結果が違います。
これは、strtrは置換された文字は対象外になるからです。
両方の特徴を知っておくと使い分けができますね![ひらめき電球](https://stat.ameba.jp/blog/ucs/img/char/char2/089.gif)
注意としてstrtrを使って置換する場合、連想配列でないやり方
だと文字列を同じにする必要があります。
今回は、複数あるから一行で複数文字を置換したいなぁと思って
配列に入れてやってみたらうまくいかない
![ガーン](https://stat.ameba.jp/blog/ucs/img/char/char2/141.gif)
なんで
![ビックリマーク](https://stat.ameba.jp/blog/ucs/img/char/char2/039.gif)
![あせる](https://stat.ameba.jp/blog/ucs/img/char/char2/029.gif)
そこでもう一回Google先生に聞いてみたら面白い情報を発見
![ひらめき電球](https://stat.ameba.jp/blog/ucs/img/char/char2/089.gif)
文字列置換はstr_replaceだけじゃない。strtrでも可能!
$str = "abc cba";
$search = array("abc", "cba");
$replace = array("cba", "abc");
$list = array("abc" => "cba", "cba" => "abc");
echo str_replace($search, $replace, $str);
echo "\n";
echo strtr($str, $list);
echo "\n";
これの実行結果は以下のようになります。
abc abc
cba abc
同じ文字列置換ですが実行結果が違います。
これは、strtrは置換された文字は対象外になるからです。
両方の特徴を知っておくと使い分けができますね
![ひらめき電球](https://stat.ameba.jp/blog/ucs/img/char/char2/089.gif)
注意としてstrtrを使って置換する場合、連想配列でないやり方
だと文字列を同じにする必要があります。