TraderInteractive Filter\Arrays
, (*1)
, (*2)
, (*3)
A filtering implementation for verifying correct data and performing typical modifications to arrays, (*4)
Requirements
Requires PHP 7.0 or newer and uses composer to install further PHP dependencies. See the composer specification for more details., (*5)
Installation
filter-arrays-php can be installed for use in your project using composer.
The recommended way of using this library in your project is to add a composer.json
file to your project. The following contents would add filter-arrays-php as a dependency:, (*6)
composer require traderinteractive/filter-arrays
Included Filters
Arrays::copy
This filter will copy values from the input array into the resulting array using the destination key map., (*7)
$input = ['foo' => 1, 'bar' => 2];
$keyMap = ['FOO_VALUE' => 'foo', 'BAR_VALUE' => 'bar'];
$result = \TraderInteractive\Filter\Arrays::copy($input, $keyMap);
assert($result === ['FOO_VALUE' => 1, 'BAR_VALUE' => 2]);
Arrays::copyEach
This filter will copy values from each array within the input array into the resulting array using the destination key map., (*8)
$input = [
['foo' => 1, 'bar' => 2],
['foo' => 3, 'bar' => 4],
];
$keyMap = ['FOO_VALUE' => 'foo', 'BAR_VALUE' => 'bar'];
$result = \TraderInteractive\Filter\Arrays::copyEach($input, $keyMap);
assert($result === [['FOO_VALUE' => 1, 'BAR_VALUE' => 2], ['FOO_VALUE' => 3, 'BAR_VALUE' => 4]]);
Arrays::in
This filter is a wrapper around in_array
including support for strict equality testing., (*9)
The following does a strict check for $value
against the 3 accepted values., (*10)
\TraderInteractive\Filter\Arrays::in($value, ['a', 'b', 'c']);
Arrays::filter
This filter verifies that the argument is an array and checks the length of the array against bounds. The
default bounds are 1+, so an empty array fails by default., (*11)
The following checks that the $value
is an array with exactly 3 elements., (*12)
\TraderInteractive\Filter\Arrays::filter($value, 3, 3);
Arrays::flatten
This filter flattens a multi-dimensional array to a single dimension. The order of values will be
maintained, but the keys themselves will not. For example:, (*13)
$value = \TraderInteractive\Filter\Arrays::flatten([[1, 2], [3, [4, 5]]]);
assert($value === [1, 2, 3, 4, 5]);
Arrays::implode
This filter is a wrapper to the PHP implode
function. It joins an array of strings with the optional glue string., (*14)
$value = \TraderInteractive\Filter\Arrays::implode(['lastname', 'email', 'phone'], ',');
assert($value === 'lastname,email,phone');
Arrays::pad
This filter pads an array to the specified length with a value. Padding optionally to the front or end of the array., (*15)
$value = \TraderInteractive\Filter\Arrays::pad([1, 2], 5, 0, \TraderInteractive\Filter\Arrays::ARRAY_PAD_FRONT);
assert($value === [0, 0, 0, 1, 2]);
Arrays::unique
This filter removes any duplicate values in the given array. Optionally throwing an exception if duplicate values are found., (*16)
$value = \TraderInteractive\Filter\Arrays::unique(['foo', 'bar', 'foo']);
assert($value === ['foo', 'bar']);
Project Build
With a checkout of the code get Composer in your PATH and run:
``sh
composer install
./vendor/bin/phpunit
./vendor/bin/phpcs
```
For more information on our build process, read through out our Contribution Guidelines., (*17)