flow php

Example: Array unpack

Topic: Transformations


Code

<?php

declare(strict_types=1);

use function Flow\ETL\DSL\{data_frame, from_rows, int_entry, json_entry, ref, row, rows, to_stream};

require __DIR__ . '/../../../autoload.php';

data_frame()
    ->read(from_rows(rows(
        row(int_entry('id', 1), json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3])),
        row(int_entry('id', 2), json_entry('array', ['d' => 4, 'e' => 5, 'f' => 6])),
    )))
    ->withEntry('unpacked', ref('array')->unpack())
    ->write(to_stream(__DIR__ . '/output.txt', truncate: false))
    ->run();

Output

+----+---------------------+------------+------------+------------+------------+------------+------------+
| id |               array | unpacked.a | unpacked.b | unpacked.c | unpacked.d | unpacked.e | unpacked.f |
+----+---------------------+------------+------------+------------+------------+------------+------------+
|  1 | {"a":1,"b":2,"c":3} |          1 |          2 |          3 |            |            |            |
|  2 | {"d":4,"e":5,"f":6} |            |            |            |          4 |          5 |          6 |
+----+---------------------+------------+------------+------------+------------+------------+------------+
2 rows

Contributors

Join us on GitHub external resource
scroll back to top