【问题标题】:Order alphanumerical list in PHPPHP中的顺序字母数字列表
【发布时间】:2010-12-11 20:57:32
【问题描述】:

嗨, 我需要在 PHP 中订购一个如下所示的列表: B1200 120A81 00A12 00A22 C100B C100C

有序列表将是: 00A12 00A22 120A81 B1200 C100B C100C

我正在考虑将每一行拆分为多维数组并对其进行排序,但我被卡住了,也许有一种完全不同的方法。

谢谢!

【问题讨论】:

    标签: php alphanumeric


    【解决方案1】:

    如果正常的排序功能可以满足您的需求,那么拆分/排序将很容易:

    // break up the string into an array on spaces
    $new_array = explode(' ', $input);
    // sort the array
    sort($new_array);
    // put the string back together
    $sorted_string = implode(' ', $new_array);
    

    或者,更简洁:

    $sorted_string = implode(' ', sort(explode(' ', $input)));
    

    如果默认的sort() 无法满足您的需求,您应该查看the usort() function

    【讨论】:

    • 我想补充一点,你甚至可以使用“natsort”功能。
    • 使用带有 SORT_NUMERIC 标志的排序:sort($new_array, SORT_NUMERIC); # SORT_REGULAR - 正常比较项目(不要更改类型) # SORT_NUMERIC - 以数字方式比较项目 # SORT_STRING - 将项目作为字符串进行比较 # SORT_LOCALE_STRING - 将项目作为字符串进行比较
    • SORT_NUMERIC 在这种情况下是错误的(不是所有的数字,还有字母)。 SORT_STRING 是正确的。如果十六进制字符串可以混合大小写,您希望在排序之前将它们全部转换为大写或全部小写(甚至拆分)
    猜你喜欢
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多