Arrrgh。有谁知道如何创建与PHP count_chars($ string,3)命令等效的多字节字符的函数?

这样它将返回每个唯一字符的一个实例的列表。如果那是英语,而我们有

“ aaabggxxyxzxxgggghq xcccxxxzxxyx”

它将返回“ abgh qxyz”(请注意空格已计算在内)。

(顺序在这种情况下并不重要,可以是任何东西)。

如果使用日语汉字(不确定浏览器是否都支持):

汉汉汉字汉字私私字私字汉字私汉汉字汉字私

它只会返回使用的3个汉字:

汉字私

它需要在任何UTF-8编码的字符串上工作。

有帮助吗?

解决方案

嘿,戴夫,你永远不会看到一个。 通用标签

什么,您认为我将再次使用mb_substr

用正则表达式来说,它是在寻找任何一个字符,然后是该字符的一个或多个实例。然后将匹配的区域替换为匹配的一个字符。

u修饰符启用了UTF-8 PCRE模式,它处理 UTF-8序列而不是8位字符。只要要处理的字符串已经是 并且 已使用Unicode支持进行编译,PCRP就可以很好地满足您的要求。


嘿,你猜怎么着! 通用标签

这与洗牌代码使用相同的通用技巧。我们获取字符串的长度,然后使用mb_substr一次将其提取一个字符。然后,我们将该字符用作数组中的键。我们利用了PHP的位置数组:键是按照定义的顺序排序的。遍历字符串并识别了所有字符后,我们将抓住键并以它们在字符串中出现的顺序将它们重新连接在一起。您还可以通过此技术获得每个字符的字符数。

如果将诸如mb_str_split之类的东西与通用种族标签代码

(这里没有汉字示例,我遇到了复制/粘贴错误。)


在这里,尝试以下尺寸: 通用标签

您将要调用此两次,第二次调用,左边的字符串在右边,右边的字符串在左边。输出结果将有所不同-str_split仅向您提供左侧缺少的,右侧缺少的内容,因此您必须执行两次以获取整个故事。

其他提示

请尝试检查 iconv_strlen PHP标准库功能。不能说东方编码,但是它对于欧洲和东欧语言都适用。无论如何,它都有一定的自由度!

通用标签

容易得多。用户str_split将短语转换为以每个字符为元素的数组。然后使用array_unique删除重复项。很简单没什么复杂的。我喜欢那样。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top