这是我的阵列(在我做完后):
array(4) {
["3"]=>
float(24)
["4"]=>
float(50)
["2"]=>
float(50)
["1"]=>
float(50)
}
按其值排序。这没关系,但是如果值相同,我想按键对这些值进行排序。
如果我使用ksort(myarray)
,我的数组按键排序:
array(4) {
["1"]=>
float(50)
["2"]=>
float(50)
["3"]=>
float(24)
["4"]=>
float(50)
}
但是它不再按值排序了。
我想要达到的结果是:
array(4) {
["3"]=>
float(24)
["1"]=>
float(50)
["2"]=>
float(50)
["4"]=>
float(50)
}
答案 0 :(得分:0)
你试过这个吗?
ksort($myarray);
asort($myarray);
编辑: 解释,当你第一次使用ksort函数时,你的数组将按键编号排序,然后使用asort函数,它将按照值对数组进行排序,并保持具有相同值的元素的键顺序。
答案 1 :(得分:0)
我找到了解决方案:
$tag = array();
$num = array();
foreach($myarray as $key => $value){
$tag[] = $key;
$num[] = $value;
}
array_multisort($num, SORT_ASC, $tag, SORT_ASC, $myarray);