arraynetworks PHP 配列クロス集計の実装コード
SQL文を使うと負荷がかかりすぎるので、早速、コードを見てみましょう
コードをコピーします コードは次のとおりです。以下のように:
/**
* 基本的なクロス集計
* @author ヒュー
*
*/
class Pivot
{
private $HORIZONTAL_TOTAL_FIELD = 'total';
private $topPivot;
private $measure;
private $horizontalColumn = 配列();
private $isVerticalTotal = true;プライベート $horizontalTotal = null;
private $title = 'PivotTab';
プライベート関数 InitPivot()
$this->topPivot; $this->data as $d )
{
$this->horizontalColumn [] = $d [$this->leftPivot];
$this->verticalColumn [] = $d [$this-> ;topPivot];
$this->horizontalColumn = array_unique ( $this->verticalColumn );
foreach ( $this->horizontalColumn as $h )
{
foreach ( $this->verticalColumn as $v )
{
$this->pivotValue [$h] [$v] = 0;
}
}
/**
* クロス集計を初期化します
* /
プライベート関数 fillData()
{
foreach ( $this->data as $row )
{
$this->pivotValue [$row [$this- >leftPivot]] [$row [$this- >topPivot]] += $row [$this->measure]
}
if ($this->is水平合計)
{
$this-> set水平合計 ();
}
if ($this->isVerticalTotal)
{
$this->setVerticalTotal ();
}
}
/**
* データを入力してください
*/
プライベート関数 setVerticalTotal()
$this->verticalColumn [] = $this->VERTICAL_TOTAL_FIELD;
foreach ( $this->horizontalColumn as $i )
{
$rowsum = 0;
foreach ( $this->verticalColumn as $j )
{
$rowsum += $this->pivotValue [$i] [$j]
}
$this->pivotValue [$i] [$this->TOTAL_FIELD] = $rowsum; }
/**
* 垂直合計を設定します
*/
プライベート関数 set水平Total()
{
$this->horizontalColumn [] = $this->HORIZONTAL_TOTAL_FIELD;
foreach ( $this->verticalColumn as $i )
{
$rowsum = 0;
foreach ( $this->horizontalColumn as $j )
{
$rowsum += $this->pivotValue [$j] [$i]
}
$this->pivotValue [$this->HORIZONTAL_TOTAL_FIELD] [$i] = $rowsum;
}
}
/**
* 水平合計を設定します
*/
function Render()
{
echo '
'
print_r ( $this ->pivotValue );
/**
* レンダリング
*/
function RenderToTable()
{
$resault = "
$ this->title | n";$ value | n";
$value | n";
return $resault
/**
* テーブルとしてレンダリングします
*/
function __construct (配列 $data, $topPivot, $leftPivot, $ メジャー)
{
$this->data = $data;
$this->topPivot = $topPivot; $this->measure = $measure;
$this->horizontalColumn = array ();
$this->InitPivot; fillData ();
}
}
重要なポイント これは InitPivot メソッドと fillData メソッドにあります。
InitPivot は、すべての項目が値を持つことを保証します (デフォルトは 0)
fillData メソッドは、選択および入力のメソッドを使用して、データをインストールする $pivotValue にデータを入力します。
あとはお好みで出力してください。
上記では、arraynetworks の PHP Array クロスタブの実装コードを紹介します。これには、arraynetworks の内容も含まれており、PHP チュートリアルに興味のある友人の参考になれば幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...
