【发布时间】:2010-12-04 12:47:44
【问题描述】:
我想按值的相反顺序对数组进行排序。我使用了arsort php函数,但结果对我不利。
例子:
我要排序下一个数组:
myArray = array("d" => 1, "f" => 2, "b" => 3, "c" => 4, "e" => 2);
使用arsort php函数后的结果是:
myArray =array ( "c" => 4, "b" => 3, "e" => 2, "f" => 2, "d" => 1 );
这不好,因为 arsort 函数不保持数组中元素的初始顺序。
我想要这样的结果:
myArray =array ( "c" => 4, "b" => 3, "f" => 2, "e" => 2, "d" => 1 );
f 在 e 顺序之前,例如来自原始数组。具有相同值的键不反转。 谢谢。
【问题讨论】:
-
相当不寻常的任务,我无法想象这样做的合理理由。但是,您始终可以使用 usort() 来实现任何排序的排序算法
-
@Sharpnel。 usort 的主要问题是您丢失了最终产品中的密钥。在定义自己的排序功能时,您必须使用 uasort 来保留键。查看官方文档
-
@Col。又是你? :) 我希望看到您使用
uasort编写的解决方案。请赐教。