国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP Array交叉表實現代碼

PHP Array交叉表實現代碼

2019-11-06 11:01php教程網 PHP教程

最近需要做到交叉表,而公司的需求比較復雜,一般的交叉表工具都不適合用

如果使用sql語句做的話 工作量太大了,于是嘗試自己寫一個交叉表的類,好二話不說,我們看看代碼 

復制代碼代碼如下:


/** 
* 基本交叉表 
* @author hugh 

*/ 
class Pivot 

private $HORIZONTAL_TOTAL_FIELD = 'total'; 
private $VERTICAL_TOTAL_FIELD = 'total'; 
private $data; 
private $topPivot; 
private $leftPivot; 
private $measure; 
private $horizontalColumn = array (); 
private $verticalColumn = array (); 
private $pivotValue = array (); 
private $isHorizontalTotal = true; 
private $isVerticalTotal = true; 
private $horizontalTotal = null; 
private $verticalTotal = null; 
private $title = 'PivotTab'; 
/** 
* 初始化交叉表 
*/ 
private function InitPivot() 

$this->topPivot; 
foreach ( $this->data as $d ) 

$this->horizontalColumn [] = $d [$this->leftPivot]; 
$this->verticalColumn [] = $d [$this->topPivot]; 

$this->horizontalColumn = array_unique ( $this->horizontalColumn ); 
$this->verticalColumn = array_unique ( $this->verticalColumn ); 
$reasult = array (); 
foreach ( $this->horizontalColumn as $h ) 

foreach ( $this->verticalColumn as $v ) 

$this->pivotValue [$h] [$v] = 0; 



/** 
* 填充數據 
*/ 
private function fillData() 

foreach ( $this->data as $row ) 

$this->pivotValue [$row [$this->leftPivot]] [$row [$this->topPivot]] += $row [$this->measure]; 

if ($this->isHorizontalTotal) 

$this->setHorizontalTotal (); 

if ($this->isVerticalTotal) 

$this->setVerticalTotal (); 


/** 
* 設置縱向合計 
*/ 
private function 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; 


/** 
* 設置橫向合計 
*/ 
private function setHorizontalTotal() 

$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 '<pre>'; 
print_r ( $this->pivotValue ); 

/** 
* 渲染為table 
*/ 
function RenderToTable() 

$resault = "<table border='1' width='250'>\n"; 
$resault .= "<tr><td>$this->title</td>\n"; 
foreach ( $this->verticalColumn as $value ) 

$resault .= "<td>$value</td>\n"; 

$resault .= "</tr>\n"; 
foreach ( $this->horizontalColumn as $i ) 

$resault .= "<tr><td>$i</td>\n"; 
foreach ( $this->pivotValue [$i] as $value ) 

$resault .= "<td>$value</td>\n"; 

$resault .= "</tr>\n"; 

$resault .= "</table>"; 
return $resault; 

/** 
* 構造交叉表 
* @param $data 數據源 
* @param $topPivot 頭欄目字段 
* @param $leftPivot 左欄目字段 
* @param $measure 計算量 
*/ 
function __construct(array $data, $topPivot, $leftPivot, $measure) 

$this->data = $data; 
$this->leftPivot = $leftPivot; 
$this->topPivot = $topPivot; 
$this->measure = $measure; 
$this->horizontalColumn = array (); 
$this->verticalColumn = array (); 
$this->InitPivot (); 
$this->fillData (); 


重點在于InitPivot方法及fillData方法。 
InitPivot里面保證了所有的item都會有值(默認為0) 
fillData方法使用選擇填充添加的方法,將數據填充入我們裝數據的$pivotValue里面。 

然后喜歡怎么輸出都可以了

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久久在线 | 欧美视频在线免费 | 亚洲一区二区三区视频 | 日韩精品一区二区三区中文字幕 | 黄视频日本 | 欧美福利 | 青青草中文字幕 | 亚洲高清色综合 | 免费看黄色一级电影 | 成人亚洲电影 | 国产精品免费一区二区三区 | 久久九九99| 亚洲成年人网址 | 极品美女销魂一区二区三区 | 国产成人精品一区二区三区网站观看 | 国产亚洲精品久久久久动 | 中文字幕日韩欧美 | 山岸逢花在线观看 | 日韩一级大片 | 中文字幕日韩在线视频 | 在线手机电影 | 久久久天堂 | 国产精品jizz在线观看麻豆 | 久久这里只有精品8 | 一级电影免费在线观看 | 成人精品国产免费网站 | 成人做爰69片免费 | 亚洲电影在线 | 特级av| 免费观看一区二区三区毛片软件 | 中文字幕高清 | 网站黄色在线观看免费 | 国产麻豆一区二区三区 | 自拍偷拍亚洲欧美 | 欧美日韩在线精品 | 日韩精品无码一区二区三区 | 国产精品欧美大片 | 久草福利在线视频 | 精品免费视频 | 国产成人精品电影 | 色综合天天综合网国产成人网 |