如何按值(DESC,数字)排序数组并保持非数字键顺序?

时间:2015-03-03 21:43:49

标签: php arrays

我尝试过很多但没有效果的东西,我确信我错过了一些简单的东西。

这是我的阵列:

$array['Product1'] = 500;
$array['Product2'] = 1230;
$array['Product3'] = 432;
$array['Product4'] = 2000;

这是我想要的结果!

$array['Product4'] = 2000;
$array['Product2'] = 1230;
$array['Product1'] = 500;
$array['Product3'] = 432;

尝试过natcasesort,array_reverse,asort,rsort,似乎没什么用。我在这里缺少什么?

感谢任何帮助

2 个答案:

答案 0 :(得分:2)

你尝试了很多,但不是正确的事情:

arsort($array);

有关arsort()的更多信息,请参阅手册:http://php.net/manual/en/function.arsort.php

答案 1 :(得分:0)

你可能想要arsort:http://php.net/manual/en/function.arsort.php

$array = arsort($array);

这里有数组排序类型的比较:http://php.net/manual/en/array.sorting.php

您也可以将sort_flags传递给arsort - 这里有一个列表:http://php.net/manual/en/function.sort.php(以及上面arsort链接上的链接)

你最终应该:

$array = arsort($array, SORT_NUMERIC);