Вот пример, который работает с многобайтовыми (UTF-8) строками.
$str = 'äbcd';
// PHP 5.4.8 allows null as the third argument of mb_strpos() function
do {
$arr[] = mb_substr( $str, 0, 1, 'utf-8' );
} while ( $str = mb_substr( $str, 1, mb_strlen( $str ), 'utf-8' ) );
Это также можно сделать с помощью preg_split()
(preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )
), но в отличие от приведенного выше примера, который работает почти так же быстро, независимо от размера строки, preg_split()
быстро с небольшим струны, но намного медленнее с большими.