$a = array(
array('userid'=>3,'val'=>9.5),
array('userid'=>1,'val'=>9),
array('userid'=>2,'val'=>9.5),
array('userid'=>5,'val'=>9.5),
array('userid'=>8,'val'=>9.5)
);
或者
$a = array(
array('userid'=>3,'val'=>9.5),
array('userid'=>1,'val'=>9.5),
array('userid'=>2,'val'=>9.5),
array('userid'=>5,'val'=>9.5),
array('userid'=>8,'val'=>9.5)
);
这两种情况怎么按val排序数组?如果val都相等,不改变userid的次序。
我这样做的:
array_multisort(array_column($arr,'val'),SORT_ASC,$arr);
print_r($arr);
貌似不行,说是按val排序数组,可是遇到val相同的,他还要对userid的值大小进行排序。这种就打乱了排序规则。第二种情况,可能会把userid=1,排到第一位去。
function compareVal($a, $b)
{
}
$a = array(
);
usort($a, "compareVal");
print_r($a);