繁体   English   中英

uksort由多个数组元素

[英]uksort by multiple array elements

我有一个看起来像这样的数组(示例):

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
        )


)
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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM