一、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());