按值排序多维数组(赔率然后均衡)

时间:2014-04-15 19:28:08

标签: php

我正在使用多维数组。每个数组都包含街道上的属性,其中一个值是街道地址。我想订购数组,使所有奇数地址都出现在偶数地址之前。它已经按数字顺序排列(从最低到最高),所以我唯一想弄清楚的是如何在平均之前订购赔率。

 Array
(
    [0] => Array
        (
            [apn] => 345345345
            [sqft] => 1200
            [address] => 323 Pacific Ave.
        )

    [1] => Array
        (
            [apn] => 345345342
            [sqft] => 1421
            [address] => 324 Pacific Ave.
        )

    [2] => Array
        (
            [apn] => 345345346
            [sqft] => 1001
            [address] => 325 Pacific Ave.
        )

)

1 个答案:

答案 0 :(得分:1)

使用usort()并定义自定义排序功能:

usort($array, function($a, $b)
{
    if ($a['apn'] % 2 == $b['apn'] % 2) {
        if ($a['apn'] == $b['apn']) {
            return 0;
        }
        return ($a['apn'] < $b['apn']) ? -1 : 1;
    } 

    return ($a['apn'] % 2 == 0) ? 1 : -1;
});

Demo