首先,我在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
);
排序的结果是:
Array
(
[2] => 0
[1] => 0
[5] => 20
[6] => 30
[4] => 60
[3] => 80
)
这是错误的,因为键 2 必须在键 1 之后
谢谢
尝试反向排序,然后排序:
$array = array(
4 => 60,
3 => 80,
5 => 20,
1 => 0,
2 => 0,
6 => 30
);
arsort($array);
asort($array);
print_r($array);
编辑:稍微复杂一些...
$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);