代码之家  ›  专栏  ›  技术社区  ›  Codemonkey

如何在PHP或MySQL中对随机文本字符串使用类似mod的操作

  •  0
  • Codemonkey  · 技术社区  · 6 年前

    我有一个问题,我想随机,但一贯地订购一套项目。

    例如,给定集合: Apples Bananas Grapes Limes Pineapples

    我可能想要 Limes Pineapples Apples Grapes Bananas Grapes Bananas Pineapples Apples Limes

    我不在乎顺序是什么,只要它不是任何明显的,如字母/长度等。我宁愿不必存储顺序,我希望它是可重复的,所以我追求一个简单的算法。

    例如,如果这些是数字而不是字符串 10000 12345 12444 17654 199999 我可以修改173(或其他)它们,然后根据它们排序,给出:

    17654 199999 12345 10000 12444

    如何使用utf8字符串执行类似的操作?对于任意长度的问题,最好有一个解决方案,但在我的情况下,它们可以从2个字符到63个字符不等。

    我可以循环遍历字符串并对所有字符的unicode代码求和,但我觉得可能有一种更为巧妙/简单的方法。理想情况下,我可以在MySQL查询中以相对简洁的方式放置一些内容。

    谢谢您!

    1 回复  |  直到 6 年前
        1
  •  3
  •   Barmar 0___________    6 年前

    计算字符串的哈希值并按以下顺序排序:

    SELECT string
    FROM yourTable
    ORDER BY MD5(string);