求教: PHP 从 sqlite 读取数据时如何按拼拼音排序?

2017-08-08 06:23:17 +08:00
 nothing2

如 select * from table order by unitname asc;

unitname 是汉字、数字、字母混杂组成的。

搜了一圈没有好的办法。默认是按 Unicode 排序。

谢谢。

1960 次点击
所在节点    问与答
7 条回复
lhx2008
2017-08-08 08:16:56 +08:00
读进数组再用 php 排
syncher
2017-08-08 08:21:41 +08:00
强行回复。 如果是 GBK 编码,默认按照拼音排序,所以直接 ``ORDER BY unitname ASC``就行。如果是其他编码可以转为 GBK 试试,MySQL 下是这样:`` ORDER BY CONVERT(unitname USING GBK) ASC``
2ME
2017-08-08 09:33:25 +08:00
<?php

setlocale(LC_COLLATE, 'zh_CN.utf8');

usort($data, 'strcoll');
2ME
2017-08-08 09:41:58 +08:00
#3 并不对 只是记得原来有做过 是用 Collator 类实现的 可以 google 一下
iyaozhen
2017-08-08 11:08:57 +08:00
不是一般都多存一个拼音字段吗?
nothing2
2017-08-08 11:18:26 +08:00
谢谢各位,我再试一下。
kofj
2017-08-08 12:12:27 +08:00
通常我也会按 @iyaozhen 这么干,@hgyhyx 换个角度实现不挺好的吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/381210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX