0

在对多维数组中的多个字段进行排序的时候,也就是类似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']);
}
0 个回答

撰写答案

推广链接