一、TableArray概述
TableArray是PHP語言的一個多功能數據處理工具,它提供了對數組、CSV文件、Excel文件等多種數據結構的處理能力,能夠實現數據的轉換、篩選、排序、分組統計、條件聚合、數據透視、數據逆透視等功能。TableArray採用了鏈式調用的編程模式,使得複雜數據處理任務的實現變得簡單、直觀、高效。
// Example 1: 計算某一列的平均值和總和 require_once('TableArray.php'); $data = array( array('name' => 'Tom', 'age' => 21, 'gpa' => 3.5), array('name' => 'Jerry', 'age' => 22, 'gpa' => 3.8), array('name' => 'Mary', 'age' => 20, 'gpa' => 3.6), array('name' => 'John', 'age' => 23, 'gpa' => 3.4) ); $ta = new TableArray($data); $avg_gpa = $ta->avg('gpa'); $total_gpa = $ta->sum('gpa'); echo "Avg GPA: $avg_gpa\nTotal GPA: $total_gpa\n";
二、TableArray的數據類型支持
TableArray支持多種數據類型的讀取和處理,包括數組、CSV文件、Excel文件、MySQL數據庫等。
1. 數組
數組是TableArray最基本、也是最常用的數據類型。TableArray能夠輕鬆地讀取和處理二維數組或關聯數組。以下是一個使用TableArray處理數組的例子。
// Example 2: 對數組進行排序和分頁 require_once('TableArray.php'); $data = array( array('name' => 'Tom', 'age' => 21, 'gpa' => 3.5), array('name' => 'Jerry', 'age' => 22, 'gpa' => 3.8), array('name' => 'Mary', 'age' => 20, 'gpa' => 3.6), array('name' => 'John', 'age' => 23, 'gpa' => 3.4) ); $ta = new TableArray($data); $ta->sort('gpa', 'desc')->page(2, 2); print_r($ta->toArray());
2. CSV文件
CSV文件是一種常見的數據存儲格式,TableArray能夠讀取並處理CSV文件。以下是一個使用TableArray處理CSV文件的例子。
// Example 3: 對CSV文件進行數據透視 require_once('TableArray.php'); $ta = TableArray::fromCsv('data.csv', true); $ta->pivot(array('date', 'city'), 'sales', 'sum'); print_r($ta->toArray());
3. Excel文件
Excel文件是一種常見的數據存儲格式,TableArray能夠讀取並處理Excel文件。以下是一個使用TableArray處理Excel文件的例子。
// Example 4: 對Excel文件進行數據逆透視 require_once('TableArray.php'); $ta = TableArray::fromExcel('data.xlsx', true); $ta->unpivot(array('date', 'city'), array('product', 'sales'), ','); print_r($ta->toArray());
4. MySQL數據庫
MySQL數據庫是一種常用的數據存儲方式,TableArray能夠讀取並處理MySQL數據庫中的數據。以下是一個使用TableArray處理MySQL數據庫的例子。
// Example 5: 對MySQL數據庫中的數據進行篩選和分組統計 require_once('TableArray.php'); $ta = TableArray::fromMysql('host', 'username', 'password', 'database', 'table'); $ta->where('age', '>', 20)->groupBy('gender')->sum('income'); print_r($ta->toArray());
三、TableArray的數據處理能力
TableArray提供了多種數據處理能力,以下列舉其中幾個常用的功能。
1. 數據轉換
TableArray能夠將數據從一種格式轉換為另一種格式,例如將數組轉換為CSV文件、將CSV文件轉換為Excel文件等。
// Example 6: 將數組轉換為CSV文件並保存到本地文件 require_once('TableArray.php'); $data = array( array('name' => 'Tom', 'age' => 21, 'gpa' => 3.5), array('name' => 'Jerry', 'age' => 22, 'gpa' => 3.8), array('name' => 'Mary', 'age' => 20, 'gpa' => 3.6), array('name' => 'John', 'age' => 23, 'gpa' => 3.4) ); $ta = new TableArray($data); $ta->toCsv('data.csv');
2. 數據篩選
TableArray能夠根據條件篩選出符合條件的數據,例如只保留某一列滿足條件的數據。
// Example 7: 篩選出某一列滿足條件的數據 require_once('TableArray.php'); $data = array( array('name' => 'Tom', 'age' => 21, 'gpa' => 3.5), array('name' => 'Jerry', 'age' => 22, 'gpa' => 3.8), array('name' => 'Mary', 'age' => 20, 'gpa' => 3.6), array('name' => 'John', 'age' => 23, 'gpa' => 3.4) ); $ta = new TableArray($data); $ta->where('gpa', '>', 3.5)->select('name', 'age'); print_r($ta->toArray());
3. 數據聚合
TableArray能夠對數據進行聚合統計,例如對某一列求和、求平均值等。
// Example 8: 計算某一列的平均值和總和 require_once('TableArray.php'); $data = array( array('name' => 'Tom', 'age' => 21, 'gpa' => 3.5), array('name' => 'Jerry', 'age' => 22, 'gpa' => 3.8), array('name' => 'Mary', 'age' => 20, 'gpa' => 3.6), array('name' => 'John', 'age' => 23, 'gpa' => 3.4) ); $ta = new TableArray($data); $avg_gpa = $ta->avg('gpa'); $total_gpa = $ta->sum('gpa'); echo "Avg GPA: $avg_gpa\nTotal GPA: $total_gpa\n";
4. 數據透視
數據透視是一種常用的數據分析方式,TableArray能夠對數據進行透視,將多維數據展開為二維表格,便於數據分析。
// Example 9: 對數據進行透視 require_once('TableArray.php'); $data = array( array('date' => '2022-01-01', 'city' => 'Beijing', 'product' => 'apple', 'sales' => 100), array('date' => '2022-01-01', 'city' => 'Beijing', 'product' => 'orange', 'sales' => 200), array('date' => '2022-01-01', 'city' => 'Shanghai', 'product' => 'apple', 'sales' => 150), array('date' => '2022-01-01', 'city' => 'Shanghai', 'product' => 'orange', 'sales' => 250), array('date' => '2022-01-02', 'city' => 'Beijing', 'product' => 'apple', 'sales' => 120), array('date' => '2022-01-02', 'city' => 'Beijing', 'product' => 'orange', 'sales' => 180), array('date' => '2022-01-02', 'city' => 'Shanghai', 'product' => 'apple', 'sales' => 170), array('date' => '2022-01-02', 'city' => 'Shanghai', 'product' => 'orange', 'sales' => 230) ); $ta = new TableArray($data); $ta->pivot(array('date', 'city'), 'sales', 'sum'); print_r($ta->toArray());
5. 數據逆透視
數據逆透視是數據透視的逆操作,TableArray能夠將透視後的數據恢復成原始數據結構。
// Example 10: 對透視後的數據進行逆透視 require_once('TableArray.php'); $data = array( array('date' => '2022-01-01', 'Beijing_apple_sales' => 100, 'Beijing_orange_sales' => 200, 'Shanghai_apple_sales' => 150, 'Shanghai_orange_sales' => 250), array('date' => '2022-01-02', 'Beijing_apple_sales' => 120, 'Beijing_orange_sales' => 180, 'Shanghai_apple_sales' => 170, 'Shanghai_orange_sales' => 230) ); $ta = new TableArray($data); $ta->unpivot(array('date', 'city'), array('product', 'sales'), '_'); print_r($ta->toArray());
原創文章,作者:IWJGI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/334320.html