入力した文字列の中から任意の文字を置換したくて、for文使ったりforeach使ってみたりして数時間うんうん悩んでたけど、strtr()
関数に配列突っ込んだら解決したっていうメモ。
##なんやそれ?
str_replace — 検索文字列に一致したすべての文字列を置換する
とのこと。
参考: PHP: strtr - Manual
引数
strtr($検索する文字列, $対象文字列, $置換する文字列);
引数に連想配列を渡すこともできる。
$key
が対象文字列、$value
が置換する文字列になる。
引数に連想配列を渡す
$s = 'AI';
$ary = ['A' => 1];
echo strtr($s, $ary);
//実行結果
1I
##実装
<?php
$str = 'PIZZA EAT PIZZA';
$words = [
'A' => 4,
'E' => 3,
'G' => 6,
'I' => 1,
'O' => 0,
'S' => 5,
'Z' => 2,
];
echo $str."\n";
echo strtr($str, $words);
//実行結果
PIZZA EAT PIZZA
P1224 34T P1224
##おわり
str_replace()
ちゅーものもあるみたい。パラメータが多くて便利そうだけど、使うときに注意が必要っぽい。
参考1: PHP: str_replace - Manual
参考2: str_replaceとstrtrの違いって何なのさ