PHP code example of tomkyle / transposer

1. Go to this page and download the library: Download tomkyle/transposer library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

tomkyle / transposer example snippets


use tomkyle\Transposer\IterableTransposer;

$transposer = new IterableTransposer('Metric');

$data = [
    'Q1-2023' => [
        'revenue' => 125000,
        'orders' => 1250,
        'customers' => 800
    ],
    'Q2-2023' => [
        'revenue' => 138000,
        'orders' => 1380,
        'customers' => 920
    ],
    'Q3-2023' => [
        'revenue' => 142000,
        'orders' => 1420,
        'customers' => 980
    ]
];

$result = $transposer($data);

[
    'revenue' => [
        'Metric' => 'revenue',
        'Q1-2023' => 125000,
        'Q2-2023' => 138000,
        'Q3-2023' => 142000
    ],
    'orders' => [
        'Metric' => 'orders',
        'Q1-2023' => 1250,
        'Q2-2023' => 1380,
        'Q3-2023' => 1420
    ],
    'customers' => [
        'Metric' => 'customers',
        'Q1-2023' => 800,
        'Q2-2023' => 920,
        'Q3-2023' => 980
    ]
]

use tomkyle\Transposer\IterableTransposer;
$transposer = new IterableTransposer('Field Name');
$transposer = new IterableTransposer();

$transposer = new IterableTransposer('Default');
$result = $transposer($data, 'Custom Label'); // Uses "Custom Label" instead of "Default"

$salesData = [
    'January' => ['online' => 50000, 'retail' => 30000, 'wholesale' => 20000],
    'February' => ['online' => 55000, 'retail' => 32000, 'wholesale' => 22000],
    'March' => ['online' => 60000, 'retail' => 35000, 'wholesale' => 25000]
];

$transposer = new IterableTransposer('Channel');
$tableData = $transposer($salesData);

use Symfony\Component\Console\Helper\Table;

$transposer = new IterableTransposer('Channel');
$tableData = $transposer($data);

$table = new Table($output);
$table->setHeaders(array_keys(reset($tableData)));

foreach ($tableData as $row) {
    $table->addRow($row);
}
$table->render();

$transposer = new IterableTransposer('Channel');
$csvData = $transposer($data);

$fp = fopen('export.csv', 'w');
// Write headers first
fputcsv($fp, array_keys(reset($csvData)));
// Write data rows
foreach ($csvData as $row) {
    fputcsv($fp, $row);
}
fclose($fp);

$transposer = new IterableTransposer('Field');

// Empty input
$result = $transposer([]); // Returns []

// Non-nested data
$result = $transposer(['a', 'b', 'c']); // Returns []

// Mixed data types
$data = [
    'category1' => ['field1' => 'value1', 'field2' => 123],
    'category2' => ['field1' => null, 'field2' => true]
];
$result = $transposer($data); // Handles mixed types properly
bash
composer analyse