spatie / array-functions
Some handy array helpers
Fund package maintenance!
spatie
Installs: 44 406
Dependents: 3
Suggesters: 0
Security: 0
Stars: 243
Watchers: 15
Forks: 40
Open Issues: 0
Requires
- php: ^7.4|^8.0
Requires (Dev)
- phpunit/phpunit: ^9.4
README
Some handy array functions
This package provides some handy array functions.
Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
Support us
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.
Postcardware
You're free to use this package (it's MIT-licensed), but if it makes it to your production environment you are required to send us a postcard from your hometown, mentioning which of our package(s) you are using.
Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium.
The best postcards will get published on the open source page on our website.
Install
You can install this package via composer:
composer require spatie/array-functions
Usage
The following functions are provided in the Spatie
-namespace:
array_rand_value
/** * Get a random value from an array. * * @param array $array * @param int $numReq The amount of values to return * @return mixed */ function array_rand_value(array $array, $numReq = 1)
array_rand_weighted
/** * Get a random value from an array, with the ability to skew the results. * Example: array_rand_weighted(['foo' => 1, 'bar' => 2]) has a 66% chance of returning bar. * * @param array $key * * @return mixed */ function array_rand_weighted(array $array)
values_in_array
/** * Determine if all given needles are present in the haystack. * * @param array|string $needles * @param array $haystack * * @return bool */ function values_in_array($needles, array $haystack)
array_keys_exist
/** * Determine if all given needles are present in the haystack as array keys. * * @param array|string $needles * @param array $haystack * * @return bool */ function array_keys_exist($needles, array $haystack)
array_split_filter
/** * Returns an array with two elements. * * Iterates over each value in the array passing them to the callback function. * If the callback function returns true, the current value from array is returned in the first * element of result array. If not, it is return in the second element of result array. * * Array keys are preserved. * * @param array $array * @param callable $callback * @return array * */ function array_split_filter(array $array, callable $callback)
array_split
/** * Split an array in the given amount of pieces. * * @param array $array * @param int $numberOfPieces * @param bool $preserveKeys * @throws \InvalidArgumentException * @return array */ function array_split(array $array, $numberOfPieces = 2, $preserveKeys = false)
array_merge_values
/** * Returns an array with the unique values from all the given arrays * * @param \array[] $arrays * @return array */ function array_merge_values(array ... $arrays)
array_flatten
/** * Flatten an array of arrays. The `$levels` parameter specifies how deep you want to * recurse in the array. If `$levels` is -1, the function will recurse infinitely. * * @param array $array * @param int $levels * * @return array */ function array_flatten(array $array, $levels = -1)
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
You can run the tests with:
vendor/bin/phpunit
Contributing
Please see CONTRIBUTING for details.
Security
If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker.
Credits
About Spatie
Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
License
The MIT License (MIT). Please see License File for more information.