onlinesid/php-data-tabulator

A PHP library to transform rows into an aggregated table

1.0.5 2018-04-26 04:06 UTC

This package is auto-updated.

Last update: 2024-05-20 10:33:46 UTC


README

A PHP library to turn rows of data (e.g.: from database query result) into aggregated tabular data format

Installation

Library

$ git clone https://github.com/onlinesid/php-data-tabulator.git

Dependencies

Composer (will use the Composer ClassLoader)

$ wget http://getcomposer.org/composer.phar
$ php composer.phar require onlinesid/php-data-tabulator

Usage

$rows = [
    ['id' => 7, 'u_id' => 1, 'u_name' => 'Joan', 'a_id' => 'PK', 'a_name' => 'Packing', 'num' => 10.5, ],
    ['id' => 4, 'u_id' => 1, 'u_name' => 'Joan', 'a_id' => 'PK', 'a_name' => 'Packing', 'num' =>  0.5, ],
    ['id' => 2, 'u_id' => 1, 'u_name' => 'Joan', 'a_id' => 'DR', 'a_name' => 'Driving', 'num' =>  2.3, ],
    ['id' => 5, 'u_id' => 2, 'u_name' => 'Robb', 'a_id' => 'DR', 'a_name' => 'Driving', 'num' =>  8.7, ],
];
$tabulator = new DataTabulator($rows);

$table = $tabulator->to2DTable('Name', 'u_id', 'u_name', 'a_id', 'a_name', 'num');

// Expected result ($table) is something like:
//
//    Name       Packing (PK)     Driving (DR)
//    Joan (1)          11               2.3
//    Robb (2)           0               8.7

// Get array with columns ordering
$arr = $table->toArray(true, false, ['DR', 'PK',]);

// Expected result ($arr) is something like:
//
//    Name       Driving (DR)     Packing (PK)
//    Joan (1)          2.3              11
//    Robb (2)          8.7               0

Running the tests

$ php bin/phpunit