多维数组按照2个字段进行排序问题
在对多维数组中的多个字段进行排序的时候,也就是类似mysql中的order by A asc,B desc
时候发现一段代码
function multi_compare($a, $b)
{
$criteria = array(
'gold'=>'desc',
'ts'=>'desc' //这里还可以根据需要继续加条件 如:'x'=>'asc'等
);
foreach($criteria as $what => $order){
if($a[$what] == $b[$what]){
continue;
}
return (($order == 'desc')?-1:1) * (($a[$what] < $b[$what]) ? -1 : 1);
}
return 0;
}
文章在这里多维数组排序
没有理解作者的foreach循环里的用意!!!所以特地来问问大家。
然后我在stackoverflow上看到别人这样写(改成和上面字段一样了)也可以
function sortMulti($a, $b) {
return ($a['gold'] - $b['gold']) ?: ($a['ts'] - $b['ts']);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论