PHPで複数の一括置換がしたい…
こんなお悩み、普通のPHPerなら悩む必要ないよね。あーあ、なんで今まで気がつかなかったんだろう。アホすぎる。普通にstr_replace() で実現可能じゃないか。置換対象に配列指定可能。
$str = 'iPad欲しい。Xperia欲しい。お金欲しい。'; $search = array('iPad','Xperia','お金'); echo str_replace($search,'彼女',$str); #=> 彼女欲しい。彼女欲しい。彼女欲しい。
$str = 'iPad欲しい。Xperia欲しい。お金欲しい。'; $search = array('iPad','Xperia','お金'); $replace = array('あれも','これも','もっともっと'); echo str_replace($search,$replace,$str); #=> あれも欲しい。これも欲しい。もっともっと欲しい。
置換する順序
配列で複数指定した場合の置換する順序は、配列の一番上から。つまり左から右へ。
$str = 'a'; $search = array('a','b','c'); $replace = array('b','c','d'); echo str_replace($search,$replace,$str); #=> d