如何根据以下条件对此多维数组进行排序

时间:2012-09-07 13:54:40

标签: php arrays sorting

我有一个名为parentArray()的数组,它是一个关联数组,键为数字(非有序整数),值可能是也可能不是数组。我有一个foreach()循环遍历parentArray()并在html表中输出这样的数据:

foreach ($parentArray as $parentkey => $childArray){
    echo "<tr>";
    $Usage = some_function1($parentkey);
    $schoolUsage = some_function2($parentkey);
    echo "<td>".$Usage."</td>";
    echo "<td>".$schoolUsage."</td>";
    echo "</tr>";
}

我需要按$ Usage的递增顺序对输出表进行排序,如果2行具有相同的$ Usage,那么它应该比较$ schoolUsage并按降序对它们进行排序。关于如何做的任何想法,因为我完全无能为力。请注意,$ Usage和$ schoolUsage是整数。

2 个答案:

答案 0 :(得分:0)

看看函数usort()。您可以传递一个自定义函数来执行排序(冒泡排序)。

usort($parentArray, function($element1, $element2) {
  if($element1 == $element2) return 0; // elements stay on the same position as before
  if$element1 < $element2) {
    return -1; // move $element1 before element2
  } else {
    return 1; // move $element2 before element1
  }
});

答案 1 :(得分:0)

我的问题并不完全清楚,但就我所知,你可能需要在php中使用这个内置函数:array_multisort。希望有助于解决您的问题。

快乐编码:)