这样的数据,怎样才能按照字母和数字的顺序来排序呢?
数据是这样的:
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前面去了。。如何让它们按照数字来排序呢?
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
iminto 发表于 2011-6-15 23:27
这个是数据库里的记录,不能使用数据库语句来实现排序吗?
作者: ashuma 发布时间: 2011-06-15
是字符串?
saturnisbig 发表于 2011-6-15 22:58
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);
$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