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で日本語(マルチバイト)文字列を一文字ずつ配列に分解する関数