2021年1月3日追記
PHP7.4以降では標準メソッドだけで書ける。
以下過去分
ありそうだけどコレって標準関数で用意されてないんだね・・・
これが魔法の一行
preg_split("//u", $text, -1, PREG_SPLIT_NO_EMPTY);<pre> <?php $str = "abcdeあい う えお"; $result = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY); var_dump($result);
結果
array(12) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
[4]=>
string(1) "e"
[5]=>
string(3) "あ"
[6]=>
string(3) "い"
[7]=>
string(1) " "
[8]=>
string(3) "う"
[9]=>
string(3) " "
[10]=>
string(3) "え"
[11]=>
string(3) "お"
}こんなやり方あるのかーとか思ってたけどPHP公式のpreg_splitのドキュメントに似たようなやつ載ってたわ。
参考リンク:
PHPで日本語(マルチバイト)文字列を一文字ずつ配列に分解する関数