在数组PHP中排序数组

时间:2016-02-15 17:46:39

标签: php arrays sorting multidimensional-array average

所以我有一个这样的数组,想要对它进行排序,以便最好的平均值排在第一位

$first_array = array(
     0 => array(
          'name' => 'John Doe'
          'average' => 7.2
     ),
     1 => array(
          'name' => 'Peter Parker'
          'average' => 8.1
     ), 
     2 => array(
           'name' => 'Albert Einstein'
           'average' => 5.6
     ));

我希望它像这样

$final_array = array(
     0 => array(
          'name' => 'Peter Parker'
          'average' => 8.1
     ),
     1 => array(
          'name' => 'John Doe'
          'average' => 7.2
     ), 
     2 => array(
           'name' => 'Albert Einstein'
           'average' => 5.6
     ));

我想根据平均值来订购它们,但我不知道怎么做,因为它是一个MultiDimensional数组,我找不到任何可以帮助自己的东西,因为我有点新手......

非常感谢

1 个答案:

答案 0 :(得分:1)

使用array_multisort()功能,如下所示:

array_multisort($first_array, SORT_DESC);

或者,使用usort()功能,如下所示:

function sort_by_average($a, $b) {
    if ($a['average'] == $b['average']) {
        return 0;
    }
    return ($a['average'] < $b['average']) ? 1 : -1;
}

usort($first_array, "sort_by_average");