-1

我有一个称为数组的数组,它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 是整数。

4

2 回答 2

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
  }
});
于 2012-09-07T13:57:56.657 回答
0

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

快乐编码:)

于 2012-09-07T14:41:43.997 回答