我有一个数组,我想根据它的值排序。但是,因为值可以是相等的,所以我需要能够访问排序函数回调中的键,以便找出正确的顺序。我目前使用的是按值排序,同时保持键关联,但不知道如何从回调比较函数访问键。
阵列例子:
Array(
[a1] => date1,
[a2] => date2,
[a3] => date1
)
我需要按日期排序,但由于a1
和a3
是相同的日期,我需要检查是a1
还是a3
。
我的理解是您希望按值排序,然后按键排序。要做到这一点,你可以使用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
)