按内部数组的元素对二维数组进行排序

时间:2013-09-24 23:53:28

标签: php arrays sorting

我有一个内置8个数组的数组。

看起来像这样:

[[num,...],[num,...],[num,...],[num,...],[num,...],[num,...],[num,...],[num,...]]

每个内部数组都有一个数字作为其第一个元素。现在我想接收外部数组的元素,其中最大数字作为第一个元素。

我该怎么做?

非常感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用PHP的usort()

定义任何排序算法
usort($array, function($a, $b) {
  return $a[0] > $b[0];
});

这将对你的数组进行排序,这样第一个元素的第一个元素就是最大的数字。

答案 1 :(得分:1)

对整个阵列进行排序不是必需的(而且要贵得多)。像这样的东西会起作用:

// initially, regard the first element as the largest
$element = $array[0];
$greatest = $array[0][0];

$length = count($array);

// compare the first value of each array against $greatest, swapping $element if it's larger
for($i = 1; $i < $length; $i++) { // N.B. start with second element
    if($array[$i][0] > $greatest) {
        $element = $array[$i];
    }
}

// $element is now the element with the biggest first value

答案 2 :(得分:0)

结帐usorthttp://php.net/manual/en/function.usort.php

你必须编写自己的比较函数。