マルチバイト文字列をPHPで2文字ずつなどに分割して出力する方法
doudonn 更新日:
文字列を2文字ずつ、3文字ずつと分割したいときがあります。
だいたい悪いことを考えているときですが…
1、実現したいこと
//これを
今日もPHPが楽しいでございます。
//こうしたい
今日 もP HP が楽 しい でご ざい ます 。
このやり方を解説します。
2、サンプルコード
$mojiretu = "分割したい文字列";
$bunkatu = preg_split("//u", $mojiretu, -1, PREG_SPLIT_NO_EMPTY);
$mojisuu = count($bunkatu);
for($i=0; $i < $mojisuu;){
echo $bunkatu[$i].$bunkatu[$i+1]." ";
$i = $i + 2;
}
まずは文字列を1文字ずつに分割します。
マルチバイト文字列でも、「preg_split」を使えばここは簡単。
次に配列の総数をカウントします。
その総数を上限にforで繰り返し処理。
最後は余りが出てしまいますが、空が出力されるので特に問題なし。
ここが気になる人はifなどで処理ください。
いろいろなやり方を試しましたが、
これがおそらく一番早い処理だと思います。
さくっと表示される。
ググっても全くこのやり方が書いていなかったので、
ここで紹介しておきます。
是非活用ください。