首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按字母顺序对包含域和IDN域的数组进行排序

按字母顺序对包含域和IDN域的数组进行排序
EN

Stack Overflow用户
提问于 2013-10-18 21:39:57
回答 2查看 222关注 0票数 0

所以我有一个包含域名的数组

代码语言:javascript
复制
Array () {
    [0] => Array () {
        [id]=>int
        [name]=>string
        [something]=>string/int...
    }
    [38] => Array () {

    }
}

我需要在一个表中显示域名,我从mysql表中获得按名称ASC排序的域名,循环遍历数组,然后转换$ domain ' name‘,以显示不同于xn--sfasdf-dfg.com的IDN,而是人类可读的。但是这个域名在W和Y之间,因为他们以X开头,我想要的是按照他们的unicode名称някво-име.com (它从N开始)对它们进行排序。这个域名应该在M和O之间,而不是W和Y之间。有人知道怎么做吗?我在谷歌上搜索过,但似乎没有人写过这样的问题。我尝试了usort和uasort php函数,但顺序完全错误。

谢谢,Yani Krystev

EN

回答 2

Stack Overflow用户

发布于 2018-02-10 12:24:58

排序(或术语排序)是一件复杂的事情,在一种语言中已经存在,但如果你混合语言就更复杂了。没有与域名字符串相关联的上下文,您不知道它是哪种语言,您只有一个带有字符的字符串(即使在所有只使用ASCII的语言之间,排序顺序也不相同)。

因此,您首先需要对此进行整理,并定义您希望使用哪种语言进行操作。然后你有工具来进行整理,但它们不是基本的工具。

例如,在libc中,LC_COLLATE变量将影响所有为国际化而正确编程的工具,并因此将其考虑在内。

libicu是另一个处理这类事情的大型库,请参阅https://www-01.ibm.com/software/globalization/icu/

PHP有一个intl扩展,它是一个包装器。请具体查看http://php.net/manual/en/class.collator.php上的Collator类:

提供字符串比较功能,并支持适当的区分地区的排序顺序。

票数 0
EN

Stack Overflow用户

发布于 2013-10-20 18:43:24

някво-име.com不以"N“开头,它以西里尔字母"AN”开头,听起来像英语"N“。如果你想根据字母的发音进行排序,你会遇到一段艰难的时期。如果你想按字母排序,它是一个不同的字母表,应该在Z之后或A之前。

我会将所有域名解码为unicode,再将英语域名转换为unicode,然后使用任何用于unicode排序的常规内置函数对unicode列表进行排序。

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

https://stackoverflow.com/questions/19451160

复制
相关文章

相似问题

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