如何遍历字符串中的所有字符?

时间:2016-04-16 12:17:15

标签: php

我尝试这样做:

pry(main)> n = Number.new(1)
=> <<1>>

但是当涉及不符合1个字节的字符时似乎是错误的。例如,strlen(“ää”)返回4表示它们由2个字节组成。

如何浏览php中的每个角色?

2 个答案:

答案 0 :(得分:5)

该代码循环遍历字符串中的字节,而不是字符 ....使用mb_*函数处理多字节字符串

for ($i = 0; $i < mb_strlen($s); $i++) {
    $char = mb_substr($s, $i, 1);
    ...
}

答案 1 :(得分:0)

使用带有preg_split(utf-8)修饰符的/u函数获取多字节字符集的简单单行“技巧”:

$str = "äänä";
$chars = preg_split("//u", $str, 0, PREG_SPLIT_NO_EMPTY);

print_r($chars);

输出:

Array
(
    [0] => ä
    [1] => ä
    [2] => n
    [3] => ä
)