-
-
Notifications
You must be signed in to change notification settings - Fork 48
Closed
Description
Add following options to array_expand:
- Expand::values - expanding only values from an array (default)
- Expand::keys - expanding only keys from an array
- Expand::key_value - expanding key and array:
Values:
<?PHP
(new Flow())
->read(
From::rows(new Rows(
Row::with(Entry::int('id', 1), Entry::array('array', ['a' => 1, 'b' => 2, 'c' => 3])),
))
)
->withEntry('expanded', array_expand(ref('array'), Expand::values))
->write(To::memory($memory = new ArrayMemory()))
->run();
$this->assertSame(
[
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => 1],
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => 2],
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => 3],
],
$memory->data
);
}Keys:
<?PHP
(new Flow())
->read(
From::rows(new Rows(
Row::with(Entry::int('id', 1), Entry::array('array', ['a' => 1, 'b' => 2, 'c' => 3])),
))
)
->withEntry('expanded', array_expand(ref('array'), Expand::values))
->write(To::memory($memory = new ArrayMemory()))
->run();
$this->assertSame(
[
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => 'a'],
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => 'b'],
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => 'c'],
],
$memory->data
);
}Key Value:
<?PHP
(new Flow())
->read(
From::rows(new Rows(
Row::with(Entry::int('id', 1), Entry::array('array', ['a' => 1, 'b' => 2, 'c' => 3])),
))
)
->withEntry('expanded', array_expand(ref('array'), Expand::values))
->write(To::memory($memory = new ArrayMemory()))
->run();
$this->assertSame(
[
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => ['a' => 1]],
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => ['b' => 2]],
['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3], 'expanded' => ['c' => 3]],
],
$memory->data
);
}