您的位置:

TableArray - 多功能数据处理工具

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