从php中的mysql记录创建二维数组



我有以下代码:

while($row12 = mysql_fetch_array($result12)) {
    $position = $row12['position'];
    $tot[$k] = $row12['total'];
    $k++;
}
$arr = arsort($tot);
for($x = 0; $x < $k; $x++) {
    echo $tot[$x]."<br>";
}

我已经能够从数据库记录中创建汇总数组,但需要按降序对值进行排序。

例如,在排序之前:

  • 107
  • 563
  • 109
  • 246
  • 897

分拣后:

  • 897
  • 563
  • 246
  • 109
  • 107

arsort维护数组键,因此如果您从开始

0 => 100
1 => 50
2 => 75
3 => 25

你最终会得到

0 => 100
2 => 75
1 => 50
3 => 25

从表面上看,这似乎是你想要的。问题是,在for($x = 0; $x < $k; $x++)循环中,您将循环这些内容,并按键顺序0、1、2、3显示它们。

对此的一个解决方案是使用foreach

foreach ($tot as $number_to_display) {
    echo $number_to_display . "<br>";
}

它将以数组顺序循环遍历它们,而不是像您尝试的那样按顺序遍历键。

正如已经评论的那样,更好的解决方案是在SQL中使用排序条件,比如:

ORDER BY total DESC

相关内容

  • 没有找到相关文章

最新更新