-1
我想对字段banner_id(int)进行排序。但是在运行时我会得到一个奇怪的结果。php usort()导致奇怪的结果
此usort的结果()被以下操作:
101 - 204-1 34 - 45 - 69 - 等
我得:
34 - 45 - 69 - 101 - 204
function usort_reorder($a,$b){
$orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'banner_id';
$order = (!empty($_REQUEST['order'])) ? $_REQUEST['order'] : 'asc';
$result = strcmp($a[$orderby], $b[$orderby]);
return ($order==='asc') ? $result : -$result;
}
usort($data, 'usort_reorder');
怎样才能让这种排序正确运行。指的不仅是整理第一位数字,而是整个数字。现在只需要第一个。
'strcmp'值字符串,而不是数字比较。 – Ryan
我应该在这里使用什么样的比较呢? – Hermants
如果您的字段'$ a [$ orderby]'是数字,您可以简单地使用'$ result = $ a [$ orderby]> $ b [$ orderby];'。 – xander