首先,我没有在stackoverflow中找到类似的主题,尽管有来自另一个用户的东西,但解决方案对我来说没有用(ASC / DESC)。
我有以下数组
Array
(
[4] => 60
[3] => 80
[5] => 20
[2] => 0
[1] => 0
[6] => 30
)
结果必须如下:
Array
(
[1] => 0
[2] => 0
[5] => 20
[6] => 30
[4] => 60
[3] => 80
)
我只是想做而且感到困惑。
**
**
asort()不适用于此数组
$array = array(
4 => 60,
3 => 80,
5 => 20,
1 => 0,
2 => 0,
6 => 30
);
asort的结果是:
Array
(
[2] => 0
[1] => 0
[5] => 20
[6] => 30
[4] => 60
[3] => 80
)
哪个错误,因为密钥2必须位于密钥1
之后谢谢
答案 0 :(得分:1)
尝试反向排序然后排序:
$array = array(
4 => 60,
3 => 80,
5 => 20,
1 => 0,
2 => 0,
6 => 30
);
arsort($array);
asort($array);
print_r($array);
答案 1 :(得分:0)
编辑:稍微复杂......
$array = array(
4 => 60,
3 => 80,
5 => 20,
2 => 0,
1 => 0,
6 => 30
);
$keys = array_keys($array);
$values = array_values($array);
array_multisort($values, SORT_ASC, $keys, SORT_ASC);
$array = array_combine($keys, $values);
print_r($array);