这样的数据,怎样才能按照字母和数字的顺序来排序呢?

数据是这样的:
1,Year 10 Algebra 1 (10A1)

2,Year 7 Algebra 1 (7A1)

3,Year 7 Algebra 2 (7A2)

4,Year 8 Algebra 1 (8A1)
5,Year 8 Algebra 2 (8A2)

现在的结果是year 10到year 7前面去了。。如何让它们按照数字来排序呢?

作者: ashuma   发布时间: 2011-06-15

是字符串?

作者: saturnisbig   发布时间: 2011-06-15

自己写个排序的代码即可,没有现成的

作者: iminto   发布时间: 2011-06-15

自己写个排序的代码即可,没有现成的
iminto 发表于 2011-6-15 23:27


这个是数据库里的记录,不能使用数据库语句来实现排序吗?

作者: ashuma   发布时间: 2011-06-15

是字符串?
saturnisbig 发表于 2011-6-15 22:58


不好意思,没写清楚。这个是数据库一个表的记录。。

作者: ashuma   发布时间: 2011-06-15

$arr = array();
$arr1 = array();
$arr[] = 'Year 10 Algebra 1 (10A1)';
$arr[] = 'Year 7 Algebra 1 (7A1)';
$arr[] = 'Year 7 Algebra 2 (7A2)';
$arr[] = 'Year 8 Algebra 1 (8A1)';
$arr[] = 'Year 8 Algebra 2 (8A2)';
foreach($arr as $val){
        $arr1[] = preg_replace("/([2-9]{1})/","0\\1",$val);
}
sort($arr1);
print_r($arr1);
foreach($arr1 as $val){
        $arr2[] = preg_replace("/0([2-9]{1})/","\\1",$val);
}
print_r($arr2);

作者: witer666   发布时间: 2011-06-15

只能帮你这些。具体的细节你自己改改代码

作者: witer666   发布时间: 2011-06-15