php - 打印前重新排列数据

标签 php mysql arrays html-table

我目前的代码可以从数据库中提取数据,然后对其中的一部分进行一些数学运算,然后将其打印到表中。但是,我想将打印的数字从大到小排列。我熟悉查询中的排序,但是查询不知道最终结果是什么。重新排列这些数据的最有效方法是什么。

<?php
    $hourAmount = $mlYeild * (3600 / $cycleTime);
    $oreVolumePriceQuery = "SELECT od.oreID, od.inGameID, od.size, ir.officialCorpRate FROM oreData od JOIN itemRates ir ON od.inGameID = ir.typeID order by od.oreID asc";
    $oreVolumePriceResult = mysql_query($oreVolumePriceQuery);
$hourYeild = $mlYeild * (3600 / $cycleTime);
?>
<TABLE>
    <TR>
        <TD><h1>Ore</h1></TD>
        <TD><h1>Hourly Yeild</h1></TD>
        <TD><h1>Hourly Sale</h1></TD>
    </TR>
    <?php
        $ores = array();
        While($row = mysql_fetch_assoc($oreVolumePriceResult)){
            $inGameID = $row['inGameID'];
            $volume = $row['size'];
            $rate = $row['officialCorpRate'];
            $name = $row['name'];
            $hourlyYeild = $hourAmount/$volume;
            $hourlyIncome = $hourlyYeild * $rate;

            echo "<TR>";
            echo "<TD>".$name."</TD>";
            echo "<TD>".$hourlyYeild."</TD>";
            echo "<TD>".$hourlyIncome."</TD>";
            echo "</TR>";
        }
    ?>
</TABLE>

简而言之,根据传入的数据,我希望通过 $hourlyIncome desc

进行安排

最佳答案

  1. 首先将您的计算存储回 $row (看起来 $hourAmount 丢失了——我认为这是 $rate ,希望我没猜错):

    $inGameID = $row['inGameID'];<br/> $volume = $row['size'];<br/> $rate = $row['officialCorpRate'];<br/> $name = $row['name'];<br/> $hourlyYield = $row['hourlyYield'] = $rate /$volume;<br/> $hourlyIncome = $row['hourlyIncome '] = $hourlyYield * $rate;

  2. 附加 $row$rows数组:$rows[] = $row;

  3. 当你拥有所有 $rows 时,使用自定义比较函数对 $rows 进行排序大批。

    用户定义的比较:

    function cmp($a, $b)  
    {  
        if ($a['hourlyIncome'] == $b['hourlyIncome']) {  
            return 0;  
        }  
        return ($a['hourlyIncome'] < $b['hourlyIncome']) ? 1 : -1;  
    }
    
  4. 排序 $rows通过usort($rows, $comp);

  5. $rows 进行标准循环显示。

注意:在我看来,所有这些计算仍然可以在 SQL 端完成。

关于php - 打印前重新排列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269420/

相关文章:

php从mysql返回值2次

php - Ajax成功函数不输出Php脚本发送的文本

Ruby 按范围分组,数字数组?

php - 在 while 中用 If 语句排序

php - 使用 Memcached 的 set 方法时看似不可能的 PHP 变量引用行为

mysql - 在 Ubuntu 14 上安装 mysql2 gem 失败

shell - MYSQL 在一个事务中重放转储文件全部或全部

mysql - 合并三个表只处理一个

arrays - 在 Mac 上将变化的数组从顶点传递到几何着色器

java - 如何将 1D 数组转换为 3D 数组?