traderinteractive / filter-arrays
A filtering implementation for verifying correct data and performing typical modifications to arrays
Installs: 80 794
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 8
Forks: 3
Open Issues: 0
Requires
- php: ^7.3 || ^8.0
- traderinteractive/exceptions: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.2
README
A filtering implementation for verifying correct data and performing typical modifications to arrays
Requirements
Requires PHP 7.0 or newer and uses composer to install further PHP dependencies. See the composer specification for more details.
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:
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.
$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.
$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.
The following does a strict check for $value
against the 3 accepted values.
\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.
The following checks that the $value
is an array with exactly 3 elements.
\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:
$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.
$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.
$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.
$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](./.github/CONTRIBUTING.md).