Como iterar a string UTF-8 no PHP?

Como iterar um caractere de seqüência de caracteres UTF-8 por caractere usando a indexação?

Quando você acessa uma string UTF-8 com o operador bracket$str[0] o caractere codificado por utf consiste em 2 ou mais elementos.

Por exemplo:

$str = "Kąt";
$str[0] = "K";
$str[1] = "�";
$str[2] = "�";
$str[3] = "t";

mas eu gostaria de ter:

$str[0] = "K";
$str[1] = "ą";
$str[2] = "t";

É possível commb_substr mas isso é extremamente lento, ie.

mb_substr($str, 0, 1) = "K"
mb_substr($str, 1, 1) = "ą"
mb_substr($str, 2, 1) = "t"

Existe outra maneira de interagir a seqüência de caracteres por caractere sem usarmb_substr?

questionAnswers(7)

yourAnswerToTheQuestion