str_replaceはどうだろう?
以前、「文字列の中の特定の文字を削除したい」という記事を書いた。
https://qiita.com/wakiyo1017/items/ace7ddc7b364edc7ccff
その時知ったのは、特定の文字を特定の文字に入れ替えるということ。
つまり、本当は1文字だけ入れ替えたくても、他の同じ文字まで入れ替わってしまった。
この関数が使えないという訳ではないし、この関数を使用してできることの幅が広がった。
でも、今回は指定した場所の文字だけを変えたい。
substr_replace関数を使う。
substr_replace("文字列", "入れ替え後の文字", "入れ替え前の文字が何文字目か", "何文字目まで入れ替えたいか")
ううむ。日本語で書くとわかるようなわからないような、不思議な感じになってしまった。
$str = "abcdefg";
$replace = substr_replace($str, "&", 3, 2);
echo($replace);
// 以下出力結果です。
abc&fg
実際に使用してみるとこのような感じ。
3文字目(スタートが0文字目なので、見た目は4文字目)から2文字が、入れ替えたい文字"&"に入れ替わっていることがわかる。
1文字ずつ入れ替わるのではなくて、"de"が"&"に入れ替わっていることに注意して、この関数を覚えておきたい。