当记录如下所示时,如何使用PHP / MySQL以升序显示记录:
12.108.90,
7.60.109.3,
56.23.45.78.9,
1.7.9.08 ?
这些记录是多个频率编号,我想按升序显示它们,但我没有得到正确的格式。我当前的查询如下所示:
select * from revision ORDER BY revid DESC
revid记录类似于:12.8.90
,7.889.56.90
,14.78.0
和16.67.87.12
。如何更正查询以按升序对记录进行排序?
答案 0 :(得分:0)
尝试使用usort
。
例如:
$array = array(
'12.108.90',
'7.60.109.3',
'56.23.45.78.9',
'1.7.9.08',
);
usort($array, function($a, $b) {
$a = explode('.', $a);
$b = explode('.', $b);
foreach($a as $key => $valuea) {
if(!isset($b[$key])) {
return 1;
}
$valueb = (int)$b[$key];
$valuea = (int)$valuea;
if($valuea === $valueb) {
continue;
}
return $valuea - $valueb;
}
return -1;
});
var_dump($array);