【问题标题】:alphabetically sort array based on first few strings根据前几个字符串按字母顺序排序数组
【发布时间】:2012-08-03 06:12:43
【问题描述】:

我想对通常包含姓名和电子邮件地址的数组进行排序。问题是电子邮件地址出现在最后,即使它们可能以“a”开头

例如

$myarray = ("Alex Mayfeild", "David Beckham", "Oliver Twist", "ant.stev@wherever.com", "peter.pan@neverland.com", ........) //and so on

在使用 php 的排序函数“ant.stev@wherever.com”对数组进行排序时,即使我想要实现的功能是让他出现在 Alex 之后,也会出现接近尾声。

基于自然排序的 natcasesort 和 natsource 函数似乎失败了。 更正:natcasesource 工作时,如文档中所述工作时返回 true。谢谢@meagar

有没有办法实现所要求的功能。感谢您的任何帮助。这是非常赞赏。

【问题讨论】:

  • @KalpeshMehta 不是主要用于关联数组吗?

标签: php arrays string


【解决方案1】:

sort() 区分大小写,因为它根据字母 ASCII 值进行排序。

如果您也想“使用不区分大小写的‘自然顺序’算法对数组进行排序”,请尝试natcasesort()

【讨论】:

  • 区分大小写的自然顺序是否考虑了@.s?
【解决方案2】:

在我看来,sort($myarray, SORT_STRING|SORT_FLAG_CASE); 应该按照您想要的方式对数组进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多