Php 函数生成用于自然排序的字符串

Php 函数生成用于自然排序的字符串,php,mysql,mongodb,sorting,natural-sort,Php,Mysql,Mongodb,Sorting,Natural Sort,我在两个数据库MySQL和MariaDB中有一些记录,我必须使用自然排序。在mysql中,我使用函数和触发器:但不确定如何在MongoDB中生成这样的字符串。我也使用PHP,所以在更新记录之前生成这样的字符串,然后用于排序并没有问题 但是。。。怎样我正在寻找从字符串生成特殊字符串的函数,然后可以将其用于自然排序 在我的例子中,解决方案是在MongoDB中使用-native选项进行排序。这比创建下一个字段要好得多。请给出一个字符串示例和“特殊”字符串示例,我的字符串:2018-D4-0023特殊字

我在两个数据库MySQL和MariaDB中有一些记录,我必须使用自然排序。在mysql中,我使用函数和触发器:但不确定如何在MongoDB中生成这样的字符串。我也使用PHP,所以在更新记录之前生成这样的字符串,然后用于排序并没有问题


但是。。。怎样我正在寻找从字符串生成特殊字符串的函数,然后可以将其用于自然排序

在我的例子中,解决方案是在MongoDB中使用-native选项进行排序。这比创建下一个字段要好得多。

请给出一个字符串示例和“特殊”字符串示例,我的字符串:2018-D4-0023特殊字符串:0000002018-D0000000004-00000000 23它来自链接的mysql函数,工作正常。我需要一些类似的php,或者更好地解释如何编写它。因此,将其分解为组件,然后以所需的格式重新组装它们…分解at-为您提供了三个“基本部分”,即D4,您仍然需要通过字符串索引拆分或访问这两个部分,如果这实际上只有两个字符,它们在ASCII范围内,然后使用str_pad或sprintf来获得所需的结果。@misorude是的,但这只是这个小例子。如果我有ABC123或ZYS.*XKS-23或测试:12:C怎么办?它必须始终生成正确的字符串。那么,它们之间的共同“模式”到底应该是什么呢?