PHP排序多维,超过1列进行排序

时间:2012-03-04 19:01:49

标签: php arrays parsing sorting multidimensional-array

  

可能重复:
  How do I sort a multidimensional array in php
  Sorting a multidimensional array in PHP?

如何按高,中,低排序数组(见下文)?

# Generate random events
$severity = array('high','medium','low');
$events = array();
for ($i=1,$n=10;$i<=$n;$i++) {
        $events["Country{$i}"] = array(
                'high'          =>              rand(0,100),
                'medium'        =>              rand(0,100),
                'low'           =>              rand(0,100),
                'total'         =>              'X'
        );
}

我的意思是,在底线我将有一个排序数组,它保存所有countryX按最高值排序,然后是中等,然后是低 - 全部在1个大数组中。

尝试了不同的方法,但不能得到正确的结果。

1 个答案:

答案 0 :(得分:0)

function sillySort($a, $b) {
    if ($a['high'] > $b['high']) {
         return -1;
    } else if ($a['high'] < $b['high']) {
         return 1;
    } else {
        if ($a['medium'] > $b['medium']) {
            return -1;
        } else if ($a['medium'] < $b['medium']) {
            return 1;
        } else {
            if ($a['low'] > $b['low']) {
                return -1;
            } else if ($a['low'] < $b['low']) {
                return 1;
            } else {
                return 0;
            }
        }
    }
}

uksort($events, 'sillySort');
相关问题