bayfrontmedia / php-array-helpers
提供有用数组函数的辅助类。
v2.0.1
2023-02-03 19:15 UTC
Requires
- php: ^8.0
README
PHP 辅助类,提供有用的数组函数。
许可证
该项目是开源的,可在 MIT 许可证 下使用。
作者
需求
- PHP
^8.0
安装
composer require bayfrontmedia/php-array-helpers
用法
- 点
- 下划线
- 设置
- 存在
- 获取
- 摘取
- 忘记
- 除了
- 只有
- 缺少
- isMissing
- multisort
- renameKeys
- order
- query
- getAnyValues
- hasAnyValues
- hasAllValues
点
描述
将多维数组转换为单深度 "点" 符号数组,可选地在每个数组键前添加一个字符串。
键值永远不会是数组,即使为空。空数组将被删除。
参数
$array
(数组): 原始数组$prepend = ''
(字符串): 要添加的前缀字符串
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'name' => [
'first_name' => 'John',
'last_name' => 'Doe'
],
'hobbies' => [ // This empty array will be dropped
]
];
$dot = Arr::dot($array);
下划线
描述
将 "点" 表示法中的数组转换为标准的多维数组。
参数
$array
(数组): "点" 表示法中的数组
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'name.first_name' => 'John',
'name.last_name' => 'Doe'
];
$undot = Arr::undot($array);
设置
描述
使用 "点" 表示法设置数组项的值。
参数
$array
(数组): 原始数组$key
(字符串): 要设置的 "点" 表示法键$value
(混合类型): 键的值
返回
- (void)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'name' => [
'first_name' => 'John',
'last_name' => 'Doe'
],
];
Arr::set($array, 'name.middle_name', 'Middle');
存在
描述
使用 "点" 表示法检查数组键是否存在且不为空。
参数
$array
(数组): 原始数组$key
(字符串): 要检查的 "点" 表示法键
返回
- (布尔类型)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'name' => [
'first_name' => 'John',
'last_name' => 'Doe'
],
];
if (Arr::has($array, 'name.first_name')) {
// Do something
}
获取
描述
使用 "点" 表示法从数组中获取项,如果未找到则返回可选的默认值。
参数
$array
(数组): 原始数组$key
(字符串): 要返回的 "点" 表示法键$default = NULL
(混合类型): 要返回的默认值
返回
- (混合类型)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'name' => [
'first_name' => 'John',
'last_name' => 'Doe'
],
];
echo Arr::get($array, 'name.first_name');
摘取
描述
使用 "点" 表示法从数组中返回给定键的值数组。
参数
$array
(数组): 原始数组$value
(字符串): 要返回的 "点" 表示法值$key = NULL
(字符串|NULL): 可选地如何以 "点" 表示法键返回数组
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
[
'user_id' => 110,
'username' => 'John',
'active' => true
],
[
'user_id' => 111,
'username' => 'Jane',
'active' => true
]
];
$array = Arr::pluck($array, 'username', 'user_id');
忘记
描述
使用 "点" 表示法从给定数组中删除单个键或键数组。
参数
$array
(数组): 原始数组$keys
(字符串|数组): 要忘记的 "点" 表示法键
返回
- (void)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'name' => [
'first_name' => 'John',
'last_name' => 'Doe'
],
];
Arr::forget($array, 'name.last_name');
除了
描述
返回除给定键外的原始数组。
参数
$array
(数组): 原始数组$keys
(字符串|数组): 要删除的键
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'user_id' => 110,
'username' => 'John',
'active' => true
];
$array = Arr::except($array, 'active');
只有
描述
从数组中返回所需的键。
参数
$array
(数组): 原始数组$keys
(字符串|数组): 要返回的键
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'user_id' => 110,
'username' => 'John',
'active' => true
];
$array = Arr::only($array, 'username');
缺少
描述
返回原始数组中缺少的键数组,如果没有缺少的键,则返回空数组。
参数
$array
(数组): 原始数组$keys
(数组): 要检查的键
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'user_id' => 110,
'username' => 'John',
'active' => true
];
$missing = Arr::missing($array, [
'active',
'last_login'
]);
isMissing
描述
检查原始数组中是否存在缺少的键。
参数
$array
(数组): 原始数组$keys
(数组): 要检查的键
返回
- (布尔类型)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'user_id' => 110,
'username' => 'John',
'active' => true
];
if (Arr::isMissing($array, [
'active',
'last_login'
])) {
// Do something
}
multisort
描述
按给定键按升序(可选,降序)对多维数组进行排序。
参数
$array
(数组): 原始数组$key
(字符串): 要排序的键名$descending = false
(布尔类型): 降序排序
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$clients = [
[
'first_name' => 'John',
'last_name' => 'Doe'
],
[
'first_name' => 'Jane',
'last_name' => 'Doe'
]
];
$sorted = Arr::multisort($clients, 'first_name');
renameKeys
描述
在保留顺序的同时重命名数组键。
参数
$array
(数组): 原始数组$keys
(数组): 要重命名的键/值对
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$user = [
'UserID' => 5,
'UserEmail' => 'name@example.com',
'UserGroup' => 'Administrator'
];
$renamed = Arr::renameKeys($user, [
'UserID' => 'id',
'UserEmail' => 'email',
'UserGroup' => 'group'
]);
order
描述
根据键数组对数组进行排序。
如果 $order
数组中的键在原始数组中不存在,则忽略它们。
参数
$array
(数组): 原始数组$order
(数组): 要返回的键的顺序数组
返回
- (数组)
示例
use Bayfront\ArrayHelpers\Arr;
$address = [
'street' => '123 Main St.',
'state' => 'IL',
'zip' => '60007',
'city' => 'Chicago'
];
$order = [
'street',
'city',
'state',
'zip',
'country'
];
$address = Arr::order($address, $order);
上面的示例将返回以下数组
Array
(
[street] => 123 Main St.
[city] => Chicago
[state] => IL
[zip] => 60007
)
query
描述
将数组转换为查询字符串。
参数
$array
(数组): 原始数组
返回
- (字符串)
示例
use Bayfront\ArrayHelpers\Arr;
$array = [
'first_name' => 'Jane',
'last_name' => 'Doe'
];
echo Arr::query($array);
getAnyValues
描述
返回一个包含给定数组中存在的值的数组。
参数
$array
(数组)$values
(数组)
返回
- (数组)
示例
$array = [
'name' => [
'John',
'Dave'
],
];
$existing_values = Arr::getAnyValues($array['name'], [
'John',
'Jane'
]);
hasAnyValues
描述
给定数组中是否存在任何值。
参数
$array
(数组)$values
(数组)
返回
- (布尔类型)
示例
$array = [
'name' => [
'John',
'Dave'
],
];
if (Arr::hasAnyValues($array['name'], [
'John',
'Jane'
])) {
// Do something
}
hasAllValues
描述
给定数组中是否存在所有值。
参数
$array
(数组)$values
(数组)
返回
- (布尔类型)
示例
$array = [
'name' => [
'John',
'Dave'
],
];
if (Arr::hasAllValues($array['name'], [
'John',
'Jane'
])) {
// Do something
}