PHP如何先按键然后按值排序关联数组?
问题描述:
$arr =array(
28 => 23,
26 => 23,
15 => 12,
29 => 12,
1 => 12,
16 => 15,
30 => 15,
11 => 12,
8 => 23,
33 => 23
);
如何排序是这样的:PHP如何先按键然后按值排序关联数组?
8 => 23
26 => 23
28 => 23
33 => 23
16 => 15
30 => 15
1 => 12
11 => 12
15 => 12
29 => 12
答
答
您可以使用uksort()
,它使自定义回调可以查看键和间接关联的值。然后,决定进行哪些比较并返回合适的大于或小于或等于零的值来影响排序顺序是一件简单的事情。
下面是一个在临时变量周围使用闭包的示例(请参阅Jacob's comment),这应该是有意义的。
你的数组只是按值排序,是吗? – JohnP 2011-03-21 12:58:09
你必须编写你的函数,并使用它作为uksort()回调 – Yaronius 2011-03-21 13:04:04
我已经将你的两个账户合并在一起。 [请阅读有关基于Cookie的帐户的此Faq条目。](http://meta.stackexchange.com/questions/44557/why-should-i-register-my-account/44562#44562)此外,*不是一个论坛;如果您有新问题,请提出一个新问题。如果你想在你的问题中包含更多信息,请[编辑](http://*.com/posts/5377853/edit)。如果您想与其中一位已回答的人进行互动,您可以留下评论。 – Will 2011-03-21 16:03:29