ホームページ > 記事 > PHPフレームワーク > thinkphp を使用してデータを合計し、ランク付けする方法
ThinkPHP 公式 Web サイトにアクセスして最新バージョンをダウンロードし、解凍してサーバー環境に置きます。 ThinkPHP ディレクトリに、Test という名前のプロジェクトを作成し、そのプロジェクト内にコントローラーとモデルを作成してデータを取得する必要があります。
// application/index/controller/Index.php namespace app\index\controller; use think\Controller; use app\index\model\Data; class Index extends Controller { public function index() { $list = Data::all(); // 此处处理数据求和排名 $this->assign('list', $list); return $this->fetch(); } }
<pre class="brush:php;toolbar:false">// application/index/model/Data.php
namespace app\index\model;
use think\Model;
class Data extends Model {}</pre><p>ThinkPHP は優れたデータ アクセス層を提供しており、上記のコードを通じてデータベースから簡単にデータを抽出できます。 </p>
<h4>ステップ 2: 合計 </h4>
<p>次のように実装できます: </p><pre class="brush:php;toolbar:false">$sum = 0;
foreach ($list as $item) {
$sum += $item[&#39;field&#39;];
}</pre><p>上記のコードでは、<code>field
をフィールド名に置き換える必要があります。合計したいと思います。
次に、データの合計結果をランク付けする必要があります。まずデータを並べ替えてから、順序付けされたテーブルを目的の順序で出力します。
function cmp($a, $b) { if ($a['sum'] == $b['sum']) { return 0; } return $a['sum'] > $b['sum'] ? -1 : 1; } usort($list, "cmp");
上記のコードでは、sum
を目的の合計フィールドの名前に置き換える必要があります。
データの合計とランキングが完了したので、後はデータを順番に HTML にレンダリングするだけです。
<table> <thead> <tr> <th>名称</th> <th>求和结果</th> <th>排名</th> </tr> </thead> <tbody> {volist name="list" id="vo"} <tr> <td>{$vo.name}</td> <td>{$vo.sum}</td> <td>{$i++}</td> </tr> {/volist} </tbody> </table>
上記のコードでは、name
を名前を保存する列に置き換え、sum
を合計する列に置き換える必要があります。
以上がthinkphp を使用してデータを合計し、ランク付けする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。