Laravel / PHP:按字母顺序排列,按顺序排列

按字母顺序订购时,我留下了这个:

S1 Episode 1
S1 Episode 11
S1 Episode 12
S1 Episode 2
S1 Episode 3

S2 Episode 1
S2 Episode 11

示例代码:

DB::table('test')->orderby('title','ASC')->get();

等等我需要这些才能正确订购.有解决方案吗

谢谢.

最佳答案
您正面临着以字母数字或计算机科学术语对自然分类进行分类的问题.

有many ways to achieve a natural sort with straight MySQL但您也可以将Laravel助手的结果转换为数组格式并实现PHP的natsort function instead.

从我上面找到的方法中,我得出了可能通过示例代码解决问题的最佳方法:

DB::table('test')->orderBy('LENGTH(title)','ASC')
    ->orderBy('title','ASC')
    ->get();

但是我不确定帮助者是否会抱怨在orderBy函数中接收MySQL函数而不是直列名.我只是从我和你的例子一起使用的参考文献中抄写 – 我无法保证其功效.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。