一尘不染

如何在PHP中迭代UTF-8字符串?

php

如何使用索引逐个字符地迭代UTF-8字符串?

使用方括号运算符访问UTF-8字符串时,$str[0]utf编码的字符包含2个或更多元素。

例如:

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

但我想拥有:

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

有可能,mb_substr但是这非常慢,即。

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

是否有另一种无需使用字符就可以逐字符插入字符串的方法mb_substr


阅读 249

收藏
2020-05-26

共1个答案

一尘不染

使用preg_split。使用
u”修饰符,
它支持UTF-8
Unicode。

$chrArray = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
2020-05-26