我有一个数组,我想根据它的值进行排序。但是,因为值可以是等价的,所以我需要能够访问sort函数的回调中的键,以便找出正确的顺序。我目前正在使用uasort以按值排序,同时保持密钥关联,但无法弄清楚如何从回调比较函数访问密钥。
示例数组:
Array(
[a1] => date1,
[a2] => date2,
[a3] => date1
)
我需要按日期排序,但由于a1
和a3
的日期相同,我需要检查它是a1
还是a3
答案 0 :(得分:2)
我的理解是你要按值排序,然后按键排序。要执行此操作,您可以使用array_multisort()
并首先传递您的值,然后传递您的密钥:
$k = array_keys($array);
$v = array_values($array);
array_multisort($array, SORT_ASC, $v, SORT_ASC, $k);
示例输出(在print_r($array)
之后):
Array
(
[a1] => date1
[a3] => date1
[a2] => date2
)