lablnet / arrays
PHP数组类,以高效方式操作数组,解决实际问题。
Requires
- php: ^7.2
Requires (Dev)
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-22 20:12:33 UTC
README
注意 此包是ZEST框架的一部分(https://github.com/zestframework/Zest_Framework/blob/master/src/Data/Arrays.php),感谢@peter
在此不接受任何PR
一个用于以高效方式操作数组以解决实际问题的类。
要求
- PHP 7.2或更高版本。
- Composer。
安装
安装此包非常简单,首先确保您有正确的PHP版本和已安装的Composer,然后在您的终端/命令提示符下运行:composer require lablnet/arrays
功能
-
确定给定的dataSet是否确实是数组?
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9); var_dump(Arrays::isReallyArray($arr)); //True var_dump(Arrays::isReallyArray([])); //False
-
确定给定的数组是(序列)索引数组吗?
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9); var_dump(Arrays::isSequential($arr)); //True var_dump(Arrays::isSequential(['a' => 1])); //False
-
确定给定的数组是关联数组吗?
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9); var_dump(Arrays::isAssoc($arr)); //False var_dump(Arrays::isAssoc(['a' => 1])); //True
-
确定给定的数组是多维数组吗?
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9); var_dump(Arrays::isMulti($arr)); //False var_dump(Arrays::isMulti(['a' => ['b' => 'c']])); //True
-
获取数组的类型。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9); var_dump(Arrays::getType($arr)); //indexes var_dump(Arrays::getType(['a' => ['b' => 'c']])); //multi
-
如果不存在,则使用“操作”符号将元素添加到数组中。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; var_dump(Arrays::add(['name' => 'desk', 'price' => null], 'price', 100)); // ['name' => 'desk', 'price' => 100]
-
使用“操作”符号将数组项设置为给定的值。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['products' => ['desk' => ['price' => 100]]]; Arrays::set($array, 'products.desk.price', 200, '.'); // ['products' => ['desk' => ['price' => 200]]]
-
使用“操作”符号从数组中获取项(
Arrays::get
方法使用“点”符号从深度嵌套的数组中检索值:)。- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['products' => ['desk' => ['price' => 100]]]; $price = Arrays::get($array, 'products.desk.price', '.'); // 100
Arrays::get
方法也接受一个默认值,如果未找到特定键,则返回该值。
-
使用“操作”符号确定数组中是否存在项或多个项。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['product' => ['name' => 'Desk', 'price' => 100]]; $contains = Arrays::has($array, 'product.name', '.'); // true $contains = Arrays::has($array, ['product.price', 'product.discount'], '.'); // false
-
使用“操作”符号确定数组中是否存在项或多个项。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['product' => ['name' => 'Desk', 'price' => 100]]; $assoc = Arrays::multiToAssoc($array); // ['name' => 'Desk', 'price' => 100]
-
使用点符号转换多维关联数组。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['products' => ['desk' => ['price' => 100]]]; $dot= Arrays::dot($array); // ['products.desk.price' => 100]
-
使用操作符转换多维关联数组。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['products' => ['desk' => ['price' => 100]]]; $dot = Arrays::multiToAssocWithSpecificOpr($array); // ['products.desk.price' => 100]
-
将项推送到数组的开始位置。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['red', 'green', 'blue']; $prepend = Arrays::prepend($array, 'yellow'); // ['yellow', 'red', 'green', 'blue'];
-
将项推送到数组的末尾。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['red', 'green', 'blue']; $append = Arrays::append($array, 'yellow'); // ['red', 'green', 'blue', 'yellow'];
-
从数组中获取唯一元素。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['red', 'green', 'blue', 'red']; $unique = Arrays::append($array); // ['red', green', 'blue'];
-
从给定的数组中获取项目子集。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = [ 'users' => [ 'id' => 1, 'name' => "Alex", 'username' => 'peter', ], [ 'id' => 2, 'name' => "Peter Khot", 'username' => 'peter', ], [ 'id' => 3, 'name' => "John", 'username' => 'test', ] ]; $subSetOfArray = Arrays::subSetOfArray($array, 'name'); // [];
-
使用“操作”符号从给定的数组中移除一个或多个数组项。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['products' => ['desk' => ['price' => 100]]]; Arrays::forget($array, 'products.desk'); // ['products' => []]
-
获取除了指定的键数组之外的所有给定数组。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['name' => 'Desk', 'price' => 100] $filtered = Arrays::except($array, ['price']); // ['name' => 'Desk']
-
从数组中获取值并将其移除。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['name' => 'Desk', 'price' => 100]; $name = Arrays::pull($array, 'name'); // $array: ['price' => 100]
-
更改数组中所有键的大小写。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['name' => 'Desk', 'price' => 100]; $name = Arrays::arrayChangeCaseKey($array, CASE_UPPER); // ['NAME' => 'Desk', 'PRICE' => 100]
-
更改数组中所有值的大小写。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['name' => 'Alex']; $name = Arrays::arrayChangeCaseValue($array, CASE_UPPER); // ['name' => 'ALEX']
-
从数组中移除重复值。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ```` $name = Arrays::removeDuplicates($array); // $array: ['red', 'green', 'blue']
-
从数组中获取最常出现的值。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['red', 'blue', 'green', 'red', 'blue']; $name = Arrays::mostOccurring($array); // ['red', 'blue']
-
从数组中获取最不常出现的值。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['red', 'blue', 'green', 'red', 'blue']; $name = Arrays::leastOccurring($array); // ['green']
-
将数组转换为查询字符串。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = [ 'foo' => 'bar', 'baz' => 'boom', 'cow' => 'milk', 'php' => 'hypertext processor' ]; $name = Arrays::query($array); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
-
使用给定的回调函数过滤数组(此功能与多维数组不兼容)。)
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = [100, '200', 300, '400', 500]; $array = Arrays::where($array, function ($value, $key) { return is_string($value); }); // [1 => '200', 3 => '400']
-
从数组中获取一个或多个随机值。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = ['red', 'green', 'blue']; $name = Arrays::random($array); // ['blue'];
-
从多维数组中获取相同键的多个值。
- 示例
-
use Lablnet\Arrays; require '../vendor/autoload.php'; $array = [ ['developer' => ['id' => 1, 'name' => 'Alex']], ['developer' => ['id' => 2, 'name' => 'Peter']], ]; $name = Arrays::pluck($array, 'name'); // ['Alex', 'Peter'];