weby/sloth

Data manipulaton tool

v0.1 2020-09-23 15:29 UTC

This package is auto-updated.

Last update: 2024-04-23 23:11:53 UTC


README

This PHP's library provides simple data manipulaton tools and may be used for simple data analysis, transforming and reporting. For example, it provides such operations for input data as "group by", "pivot" and additional aggregate functions that may be applied to this operations.

Installation

composer require weby/sloth:v0.1

Usage

See examples folder for more info.

Input data

// examples/data.php:
$data = [
    ['foo' => 'one', 'bar' => 'A', 'baz' => 1],
    ['foo' => 'one', 'bar' => 'B', 'baz' => 2],
    ['foo' => 'one', 'bar' => 'C', 'baz' => 3],
    ['foo' => 'two', 'bar' => 'A', 'baz' => 4],
    ['foo' => 'two', 'bar' => 'B', 'baz' => 5],
    ['foo' => 'two', 'bar' => 'C', 'baz' => 6],
];

"Group" operation

// examples/group.php:
require_once '../vendor/autoload.php';

use Weby\Sloth\Sloth;

include_once 'data.php';

Sloth::from($data)
    ->group('foo', 'baz')
    ->count()
    ->sum()
    ->avg()
    ->print();

// Outputs:
// foo      count   sum      avg
// one      3       6        2
// two      3       15       5

"Pivot" operation

// examples/pivot.php:
require_once '../vendor/autoload.php';

use Weby\Sloth\Sloth;

include_once 'data.php';

Sloth::from($data)
    ->pivot('foo', 'bar', 'baz')
    ->print();

// Outputs:
// foo     A       B       C
// one     1       2       3
// two     4       5       6

Tests

Running the tests is simple:

vendor/bin/phpunit

Documentation

The documentation is located in this repo's wiki.

License

Weby\Sloth is distributed under the MIT license.