php usort()会导致奇怪的结果

php usort()会导致奇怪的结果,php,usort,Php,Usort,我想在字段banner_id(int)上排序。但是跑步时我得到了一个奇怪的结果 此usort()的结果如下: 101-204-34-45-69-等等 我必须得到: 34-45-69-101-204 如何使该排序正确运行。这意味着不仅要对第一个数字进行排序,还要对整个数字进行排序。现在只需要第一个 function sortScripts($a, $b) { return $a['order'] - $b['order']; } 如果需要相反的顺序,请使用$b-$a 如果所讨论的数字超过

我想在字段banner_id(int)上排序。但是跑步时我得到了一个奇怪的结果

此usort()的结果如下:

101-204-34-45-69-等等

我必须得到:

34-45-69-101-204

如何使该排序正确运行。这意味着不仅要对第一个数字进行排序,还要对整个数字进行排序。现在只需要第一个

function sortScripts($a, $b)
{
    return $a['order'] - $b['order'];
}
如果需要相反的顺序,请使用
$b-$a

如果所讨论的数字超过PHP的整数范围,
return($a<$b)-1:($a>$b)?1:0)
更健壮


您可以查看此链接以了解更多信息

strcmp
将值作为字符串而不是数字进行比较。那么我应该在此处使用哪种比较?如果您的字段
$a[$orderby]
是数字字段,您只需使用
$result=$a[$orderby]>$b[$orderby]
$a[$orderby]$b[$orderby]
如果您使用的是PHP7。@xander:如果
$a<$b
,比较是否应该返回
-1
function sortScripts($a, $b)
{
    return $a['order'] - $b['order'];
}