我有一个看起来像这样的数组(样本):
Array
(
[1600] => Array
(
[country] => Canada
[memTypeID] => 10
)
[1601] => Array
(
[country] => United States
[memTypeID] => 7
)
[1602] => Array
(
[country] => Canada
[memTypeID] => 9
)
)
我需要按国家/地区排序,然后按memTypeID排序,同时保留数组键(在PHP中)。我相信我需要使用uksort,因为usort会重写数组键。我知道如何在一个数组元素上创建一个简单的比较函数,但我不知道如何处理两个数组元素。
结果数组应为:
Array
(
[1602] => Array
(
[country] => Canada
[memTypeID] => 9
)
[1600] => Array
(
[country] => Canada
[memTypeID] => 10
)
[1601] => Array
(
[country] => United States
[memTypeID] => 7
)
)
答案 0 :(得分:1)
function cmp($a, $b) {
if(strcmp($a['country'],$b['country']) != 0) {
return $a['country'] > $b['country'] ? 1 : -1;
}
return $a['memTypeID'] > $b['memTypeID'] ? 1 : -1;
}
uasort($a, "cmp");