因此,此函数非常适合按1值
对数组或对象进行排序 function sort( $a, $b )
{
if( $a['1'] == $b['1'] ){ return 0 ; }
return ($a['1'] < $b['1']) ? -1 : 1;
}
usort($myArray,'sort');
但我希望它按值1主要值和值2秒排序,如果这可以用这个函数,或者只能用自定义函数吗?
答案 0 :(得分:2)
当然,这是可能的。要添加第二个排序表达式,您应该扩展相等的大小写$a['1'] == $b['1']
。
您还应注意,您不必完全返回-1
或1
- 您可以使用任何负数/正数。所以你的分拣机可以写成以下
usort(function($a, $b) {
if($a['1'] == $b['1']) {
return $a['2'] - $b['2'];
}
return $a['1'] - $b['1'];
}, 'sort');
答案 1 :(得分:0)
我用过这个功能。它可能不是最有效的,但现在它可以工作。
function comp($a, $b) {
if ($a['1'] == $b['1']) {
return ($a['2'] < $b['2']) ? -1 : 1;
}
return strcmp($a['1'], $b['1']);
}
usort($arr, 'comp');