【问题标题】:Sort a list with a specific way [closed]以特定方式对列表进行排序[关闭]
【发布时间】:2013-11-18 15:29:38
【问题描述】:

我的数据库中有一个数字列表,想像这样列出它们:

1
11
111
11101
11101001
11101002
11102
11102001
11102002
11102003
11102004
11103

有什么建议吗?

【问题讨论】:

  • 上市规则是什么?
  • 要求代码的问题必须表明对所解决问题的最低理解。包括尝试的解决方案,以及它们为什么不起作用。
  • 如果要将它们作为字符串排序,请将它们转换为字符串。如果您有其他一些规则,则必须指定它们。
  • @FreshPrinceOfSO 我真的不知道该怎么做,我已经尝试阅读PHP sort,但没有解决这个问题。

标签: php list sorting numbers


【解决方案1】:

您希望将项目排序为字符串。这样,“11101002”出现在“11102”之前。 参数SORT_STRING 将实现sorting an array with sort():

排序($myarray, SORT_STRING);

您需要使用数据库中的数据填充一个数组。

另一种可能成本更低的选择是在查询数据库时直接对它们进行排序,使用ORDER BY

【讨论】:

    【解决方案2】:

    您想要做的是将您的数字视为字符串。 您可以将CASTCONVERT 您的数字转为字符串:

    ORDER BY CAST(my_numeric_column AS CHAR(50))
    

    【讨论】:

    • “我的数据库中有一个数字列表”。无论如何,数据库字段上的每一个排序都应该在查询中完成。只是更快。
    • 没有 php 代码,但仍然是一个更好的解决方案。谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2018-11-30
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多