首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php数组包含无法在多语言环境下工作的

php数组包含无法在多语言环境下工作的
EN

Stack Overflow用户
提问于 2016-04-07 23:24:44
回答 1查看 60关注 0票数 0
代码语言:javascript
运行
复制
$string = 'operating-system';
$array = array('operating-system');
$i = contains($array, $string);
echo ($i) ? "found ($i)" : "not found";

上面的代码打印,找到(1)

代码语言:javascript
运行
复制
$string = '운영체제';
$array = array('운영체제');
$i = contains($array, $string);
echo ($i) ? "found ($i)" : "not found";

但是这段代码打印的是没有找到。为什么?

我更新了字符集=utf-8

代码语言:javascript
运行
复制
function contains($needles, $haystack) {
        return count(array_intersect($needles, explode(" ", preg_replace("/[^A-Za-z0-9' -]/", "", $haystack))));
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 23:32:59

您需要一个支持多字节字符的本地函数。而不是preg_replace,您可以使用替换

代码语言:javascript
运行
复制
function contains($needles, $haystack) {
    return count(array_intersect($needles, explode(" ", mb_ereg_replace("/[^A-Za-z0-9' -]/", "", $haystack))));
}

您还可能希望查看所有多字节字符串函数的文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36488927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档