ホームページ  >  記事  >  バックエンド開発  >  PHPで実装されている統計データ関数を詳しく解説

PHPで実装されている統計データ関数を詳しく解説

不言
不言オリジナル
2018-06-01 14:11:524845ブラウズ

この記事では、主に PHP で実装されている統計データ関数を紹介し、PHP データのクエリと表示処理の関連操作スキルを例の形式で分析します。 PHPで実装された関数です。参考のために皆さんと共有してください。詳細は次のとおりです:

統計とは基礎データを統合することです。

SQLを使用するものには、group by関数、count関数、order by関数などが含まれます。

sql は収集されたデータに対して統計分析を実行します。

通常の状況では、SQL 処理後に取得されたデータは、PHP ロジックを通じて整理される必要があります。

一定のフォーマットでフロントに提示します。

通常は配列の形式で表示されますが、これはデータ構造の概念でもあります。

この図を見ると、基本的な構造は大まかに

{オンライン回線数、発行された注文の総数、承認の総数、1人当たりの平均の総数、承認率の総数、{(エージェント1、ジョブ番号)です。 1, 注文数 1 , 出荷数 1, 注文承認率 1), (エージェント 2, ジョブ番号 2, 注文数 2, 出荷数 2, 注文承認率 2)}}

php を使用すると、上記の構造を表示すると、非常に扱いやすくなります。

まずSQLで初期処理データを取得します

この初期処理データを過小評価しないでください。うまく処理されると非常に便利になります。


コードをコピー

コードは次のとおりです:SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('2015-11-7') and user_group = 'TeamOne' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c .user where time > UNIX_TIMESTAMP('2015-11-7') and a.user_group = 'TeamOne' GROUP BY a.user ;

sql のアイデアを使用して、順序テーブルを分類し、ユーザーごとに分類します。

その日の各人の注文送信の合計数を取得します count()。

また、各個人の承認された注文の合計数を取得し、どこでフィルターする必要もあります。

次に、他の関連データを関連付けてクエリします。

これらの基本データがあれば、他の関連データも出てきます。

phpを介して取得を処理し、変数の名前を明確にする必要があります。これはコードを読むのにも役立ちます。

$select_sql = "SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('".$today."') and user_group = '".$user_group."' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c.user where time > UNIX_TIMESTAMP('".$today."') and a.user_group = '".$user_group."' GROUP BY a.user ";
$rows = mysqli_query( $db_conn, $select_sql );
$row_counts_list = mysqli_num_rows( $rows );
if ( $row_counts_list != 0 )
{
  $i = 0;
  while($rs = mysqli_fetch_assoc( $rows )) // mysqli_fetch_assoc 获取键值数据   mysqli_fetch_field 获取一条数据 mysqli_fetch_fields 获取多组数据  mysqli_fetch_row
  {
    $outData['list'][$i]['user'] = $rs['user'];
    $outData['list'][$i]['full_name'] = $rs['full_name'];
    $outData['list'][$i]['subcount'] = $rs['subcount'];
    $outData['list'][$i]['passcount'] = $rs['passcount'];
    $outData['list'][$i]['passrate'] = round(($rs['passcount']/$rs['subcount'])*100)."%";
    $outData['all_subcount'] += $rs['subcount'];
    $outData['all_passcount'] += $rs['passcount'];
    $i++;
  }
  $outData['all_passrate'] = round(($outData['all_passcount']/$outData['all_subcount'])*100)."%";
  $outData['online_count'] = $row_counts_list;
  $outData['average_subcount'] = round($outData['all_subcount']/$outData['online_count'],1);
}


ここで、outData は出力されるデータ構造タイプです。

Array
(
  [list] => Array
    (
      [0] => Array
        (
          [user] => 8001
          [full_name] => 魏硕磊
          [subcount] => 3
          [passcount] => 2
          [passrate] => 67%
        )
      [1] => Array
        (
          [user] => 8004
          [full_name] => 刘庆
          [subcount] => 2
          [passcount] => 2
          [passrate] => 100%
        )
      [2] => Array
        (
          [user] => 8005
          [full_name] => 章厚英
          [subcount] => 4
          [passcount] => 3
          [passrate] => 75%
        )
    )
  [all_subcount] => 9
  [all_passcount] => 7
  [all_passrate] => 78%
  [online_count] => 3
  [average_subcount] => 3
)


データを取得したら、すべてが簡単になります。

それをページに挿入して、自分でデバッグするだけです。

<!-- begin -->
<?php foreach ($outData as $k => $v) { ?>
<p class="col-xs-12 col-sm-6 widget-container-col ui-sortable">
  <p class="widget-box widget-color-blue">
    <p class="widget-header">
      <h5 class="widget-title bigger lighter">
        <i class="ace-icon fa fa-table"></i>
        【<?php echo $v[&#39;group_name&#39;];?>】成绩表
      </h5>
    </p>
    <p class="widget-body">
      <p class="widget-main no-padding">
        <table>
        </table>
        <table class="table table-striped table-bordered table-hover">
          <thead style="text-align:center;font-size:16px">
            <tr>
              <td colspan="2">上线总人数:</td>
              <td colspan="3"><?php echo $v[&#39;stat&#39;][&#39;online_count&#39;]?></td>
            </tr>
            <tr>
              <td colspan="2">出单总数:</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;all_subcount&#39;]?></td>
              <td >核过总数</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;all_passcount&#39;]?></td>
            </tr>
            <tr>
              <td colspan="2">总人均:</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;average_subcount&#39;]?></td>
              <td >总核率</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;all_passrate&#39;]?></td>
            </tr>
          </thead>
          <thead class="thin-border-bottom">
            <tr>
              <th>
                <i class="ace-icon "></i>
                坐席人
              </th>
              <th>
                <i class="ace-icon "></i>
                工号
              </th>
              <th>
                <i class="ace-icon "></i>
                出单数
              </th>
              <th>
                <i class="ace-icon "></i>
                发货数
              </th>
              <th>
                <i class="ace-icon "></i>
                核单率
              </th>
            </tr>
          </thead>
          <tbody>
            <?php foreach ($v[&#39;stat&#39;][&#39;list&#39;] as $listk => $listv) { ?>
            <tr>
              <td class=""><?php echo $listv[&#39;full_name&#39;]?></td>
              <td>
                <a href="#"><?php echo $listv[&#39;user&#39;]?></a>
              </td>
              <td class="">
                <a href="#"><?php echo $listv[&#39;subcount&#39;]?></a>
              </td>
              <td class=""><?php echo $listv[&#39;passcount&#39;]?></td>
              <td class=""><?php echo $listv[&#39;passrate&#39;]?></td>
            </tr>
            <?php }?>
            <tr style="color:red;font-size:16px">
                <td class=""colspan="2">总计</td>
                <td class=""><?php echo $v[&#39;stat&#39;][&#39;all_subcount&#39;]?></td>
                <td class=""><?php echo $v[&#39;stat&#39;][&#39;all_passcount&#39;]?></td>
                <td class=""><?php echo $v[&#39;stat&#39;][&#39;all_passrate&#39;]?></td>
            </tr>
          </tbody>
        </table>
      </p>
    </p>
  </p>
</p>
<?php }?>
<!-- end -->

関連する推奨事項:

PHPに基づいて実装されたWebサイトディレクトリスキャンインデックスツールの例

PHPによって実装されたカスタム配列ソート関数とソートクラスメソッド


PHPによって実装されたファイル操作クラスファイルダウンロード機能


以上がPHPで実装されている統計データ関数を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。