按平均值对初始数组进行排序

时间:2016-10-27 18:37:39

标签: arrays sorting

我试图创建一个函数,返回按照平均值排序的初始数组。

例如我有这个:

$array1 = [1,2,3];
$array2 = [1,1,1];

这是我为返回每个数组的平均值所做的一个函数:

function average($a) {
    return (array_sum($a)/count($a));
}

我需要返回按照平均值排序的初始数组,否则

$x = [ $array2 , $array1 ];

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以这样做:

$multi_arr = [[1,2,3], [1,1,1]];
$avgs = [];

foreach ($multi_arr as $arr) {
   $avgs[] = average($arr);
}

// Keep index association
asort($avgs, SORT_NUMERIC);
// Get ordered array indexs
$keys = array_keys($avgs);
$sorted = [];
foreach ($keys as $index) {
    $sorted[] = $multi_arr[$index];
}