cse / helpers-arrays
数组助手提供了额外的静态方法,使您能够更高效地处理数组。
Requires
- php: >=7.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 03:12:32 UTC
README
英文 | 俄语
ARRAYS CSE HELPERS
数组助手提供了额外的静态方法,使您能够更高效地处理数组。
项目仓库: https://github.com/cs-eliseev/helpers-arrays
DEMO
$array = [ 0 => ' first 1 ', 'key1' => false, 1 => '', 2 => '0', 'key4' => null, 3 => [ 0 => ' first 3', 1 => false, 'key2' => '', 2 => '0', 'key5' => null, 'key6' => 12, 3 => [], 4 => 'first 4 ' ], 4 => true, 5 => [], 'key8' => 'first 2 ' ]; $array = Arrays::trim(Arrays::removeNull(Arrays::removeEmpty($array), true), true); /** * [ * 0 => 'first 1', * 3 => [ * 0 => 'first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key6' => 12, * 3 => [], * 4 => 'first 4' * ], * 4 => true, * 'key8' => 'first 2 ' * ] */ $array2 = Arrays::pullKey($array, 3); /** * $array = [ * 0 => 'first 1', * 4 => true, * 'key8' => 'first 2 ' * ] * $array2 = [ * 0 => 'first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key6' => 12, * 3 => [], * 4 => 'first 4' * ] */ $array = Arrays::mergeNotEmptyData($array, $array2); /** * [ * 0 => 'first 3', * 4 => 'first 4', * 'key8' => 'first 2', * 'key6' => 12 * ] */ Arrays::get($array, 0); // 'first 3'
简介
CSE HELPERS 是一个包含几个库的集合,其中包含用 PHP 编写的简单函数,供人们使用。
尽管 PHP 是互联网的主要编程语言,但其函数不足以满足需求。ARRAY CSE HELPERS 提供了额外的静态方法,使您能够更有效地处理数组。
CSE HELPERS 是为快速开发网络应用程序而创建的。
CSE 助手项目
- 数组 CSE 助手
- Cookie CSE 助手
- 日期 CSE 助手
- Email CSE 助手
- IP CSE 助手
- Json CSE 助手
- Math Converter CSE 助手
- 电话 CSE 助手
- 请求 CSE 助手
- 会话 CSE 助手
- 单词 CSE 助手
以下是一些有关如何初始化库和执行常见命令的信息。
安装
您可以在这里找到此项目的最新版本。
Composer
执行以下命令以获取此包的最新版本
composer require cse/helpers-arrays
或者 composer.json 应包括以下内容
{ "require": { "cse/helpers-arrays": "*" } }
Git
在本地上克隆此仓库
git clone https://github.com/cs-eliseev/helpers-arrays.git
下载
用法
该类由静态方法组成,方便在任何项目中使用。请参阅示例 examples-arrays.php。
通过键获取数组数据
示例
Arrays::get([ 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ], 'key1'); // value1
为不存在键设置默认值
Arrays::get([ 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ], 'key4', 'default1'); // default1
拉取数组键
示例
Arrays::pullKey([ 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ], 'key1'); // value1 /** * [ * 'key2' => 'value2', * 'key3' => 'value3' * ] */
为不存在键设置默认值
Arrays::pullKey([ 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ], 'key4', 'default1'); // default1
将 OBJECT 转换为数组
示例
$object = new \stdClass(); $object->key1 = 'value1'; $object->key2 = 'value2'; Arrays::objectToArray($object); /** * [ * 'key1' => 'value1', * 'key2' => 'value2' * ] */
将数组转换为 HTML 标签
示例
Arrays::toTags([ 'tag1' => [ 1, 'attr1' => 1, 'attr2' => 2 ], 'tag2' => 2, 'tag3' ]); // <tag1 attr1="1" attr2="2">1</tag1><tag2>2</tag2><tag3 />
将数组转换为映射
数据
$array = [ [ 'keyGroup1' => 'value1', 'keyGroup2' => 'value2', 'keyGroup3' => 'value3' ], [ 'keyGroup2' => 'value2', 'keyGroup3' => 'value3' ], [ 'keyGroup1' => 'value1', 'keyGroup3' => 'value2' ] ];
示例
Arrays::map($array, 'keyGroup1'); /** * [ * 'value1' => [ * 'keyGroup1' => 'value1', * 'keyGroup3' => 'value2' * ] * ] */
更改键组
Arrays::map($array, 'keyGroup2'); /** * [ * 'value2' => [ * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ] * ] */
设置键值
Arrays::map($array, 'keyGroup3', 'keyGroup1'); /** * [ * 'value3' => null, * 'value2' => 'value1' * ] */
数组 GROUP
数据
$array = [ [ 'keyGroup1' => 'value1', 'keyGroup2' => 'value2', 'keyGroup3' => 'value3' ], [ 'keyGroup2' => 'value2', 'keyGroup3' => 'value3' ], [ 'keyGroup1' => 'value1', 'keyGroup3' => 'value2' ] ];
示例
Arrays::group($array, 'keyGroup1'); /** * [ * 'value1' => [ * [ * 'keyGroup1' => 'value1', * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ], [ * 'keyGroup1' => 'value1', * 'keyGroup3' => 'value2' * ] * ] * ] */
更改键组
Arrays::group($array, 'keyGroup2'); /** * [ * 'value1' => [ * [ * 'keyGroup1' => 'value1', * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ], [ * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ] * ] * ] */
设置键值
Arrays::group($array, 'keyGroup3', 'keyGroup1'); /** * [ * 'value3' => [ * [ * 'value1', * null * ] * ], * 'value2' => [ * [ * 'value1' * ] * ], * ] */
数组 INDEX
数据
$array = [ [ 'keyGroup1' => 'value1', 'keyGroup2' => 'value2', 'keyGroup3' => 'value3' ], [ 'keyGroup2' => 'value2', 'keyGroup3' => 'value3' ], [ 'keyGroup1' => 'value1', 'keyGroup3' => 'value2' ] ];
示例
Arrays::index($array, 'keyGroup1'); /** * [ * 'value1' => [ * [ * 'keyGroup1' => 'value1', * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ], [ * 'keyGroup1' => 'value1', * 'keyGroup3' => 'value2' * ] * ] * ] */
更改键组
Arrays::index($array, 'keyGroup2'); /** * [ * 'value1' => [ * [ * 'keyGroup1' => 'value1', * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ], [ * 'keyGroup2' => 'value2', * 'keyGroup3' => 'value3' * ] * ] * ] */
设置键值
Arrays::index($array, 'keyGroup3', 'keyGroup1'); /** * [ * 'value3' => [ * [ * 'value1', * null * ] * ], * 'value2' => [ * [ * 'value1' * ] * ], * ] */
追加非空数据
示例
Arrays::appendNotEmptyData([ 1 => 'first1', 2 => '', 3 => '0', 4 => null, 5 => 'first5', 6 => 'first6', 7 => 'first7', 8 => [], 9 => 'first9', 11 => 'first11' ], [ 1 => 'second1', 2 => 'second2', 3 => 'second3', 4 => 'second4', 5 => '', 6 => '0', 7 => null, 8 => 'second8', 9 => [], 10 => 'second10' 12 => 0 ]); /** * [ * 1 => 'first1', * 2 => '', * 3 => '0', * 4 => null, * 5 => 'first5', * 6 => 'first6', * 7 => 'first7', * 8 => [], * 9 => 'first9', * 11 => 'first11', * 10 => 'second10' * ] */
替换空非空数据
示例
Arrays::replaceEmptyNotEmptyData([ 1 => 'first1', 2 => '', 3 => '0', 4 => null, 5 => 'first5', 6 => 'first6', 7 => 'first7', 8 => [], 9 => 'first9', 11 => 'first11' ], [ 1 => 'second1', 2 => 'second2', 3 => 'second3', 4 => 'second4', 5 => '', 6 => '0', 7 => null, 8 => 'second8', 9 => [], 10 => 'second10' 12 => 0 ]); /** * [ * 1 => 'first1', * 2 => 'second2', * 3 => 'second3', * 4 => 'second4', * 5 => 'first5', * 6 => 'first6', * 7 => 'first7', * 8 => 'second8', * 9 => 'first9', * 11 => 'first11' * ] */
替换非空数据
示例
Arrays::replaceNotEmptyData([ 1 => 'first1', 2 => '', 3 => '0', 4 => null, 5 => 'first5', 6 => 'first6', 7 => 'first7', 8 => [], 9 => 'first9', 11 => 'first11' ], [ 1 => 'second1', 2 => 'second2', 3 => 'second3', 4 => 'second4', 5 => '', 6 => '0', 7 => null, 8 => 'second8', 9 => [], 10 => 'second10' 12 => 0 ]); /** * [ * 1 => 'second1', * 2 => 'second2', * 3 => 'second3', * 4 => 'second4', * 5 => 'first5', * 6 => 'first6', * 7 => 'first7', * 8 => 'second8', * 9 => 'first9', * 11 => 'first11' * ] */
合并非空数据
示例
Arrays::mergeNotEmptyData([ 1 => 'first1', 2 => '', 3 => '0', 4 => null, 5 => 'first5', 6 => 'first6', 7 => 'first7', 8 => [], 9 => 'first9', 11 => 'first11' ], [ 1 => 'second1', 2 => 'second2', 3 => 'second3', 4 => 'second4', 5 => '', 6 => '0', 7 => null, 8 => 'second8', 9 => [], 10 => 'second10' 12 => 0 ]); /** * [ * 1 => 'second1', * 2 => 'second2', * 3 => 'second3', * 4 => 'second4', * 5 => 'first5', * 6 => 'first6', * 7 => 'first7', * 8 => 'second8', * 9 => 'first9', * 11 => 'first11', * 10 => 'second10' * ] */
将空数组数据替换为 NULL
数据
$array = [ 0 => ' first 1 ', 'key1' => false, 1 => '', 2 => '0', 'key4' => null, 3 => [ 0 => ' first 3', 1 => false, 'key2' => '', 2 => '0', 'key5' => null, 'key6' => 12, 3 => [], 4 => 'first 4 ' ], 4 => true, 5 => [], 'key8' => 'first 2 ' ];
示例
Arrays::emptyToNull($array); /** * [ * 0 => ' first 1 ', * 'key1' => null, * 1 => null, * 2 => null, * 'key4' => null, * 3 => [ * 0 => ' first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key5' => null, * 'key6' => 12, * 3 => [], * 4 => 'first 4 ' * ], * 4 => true, * 5 => null, * 'key8' => 'first 2 ' * ] */
递归
Arrays::emptyToNull($array, true); /** * [ * 0 => ' first 1 ', * 'key1' => null, * 1 => null, * 2 => null, * 'key4' => null, * 3 => [ * 0 => ' first 3', * 1 => null, * 'key2' => null, * 2 => null, * 'key5' => null, * 'key6' => 12, * 3 => null, * 4 => 'first 4 ' * ], * 4 => true, * 5 => null, * 'key8' => 'first 2 ' * ] */
从数组中删除空数据
数据
$array = [ 0 => ' first 1 ', 'key1' => false, 1 => '', 2 => '0', 'key4' => null, 3 => [ 0 => ' first 3', 1 => false, 'key2' => '', 2 => '0', 'key5' => null, 'key6' => 12, 3 => [], 4 => 'first 4 ' ], 4 => true, 5 => [], 'key8' => 'first 2 ' ];
示例
Arrays::removeEmpty($array); /** * [ * 0 => ' first 1 ', * 3 => [ * 0 => ' first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key5' => null, * 'key6' => 12, * 3 => [], * 4 => 'first 4 ' * ], * 4 => true, * 'key8' => 'first 2 ' * ] */
递归
Arrays::removeEmpty($array, true); /** * [ * 0 => ' first 1 ', * 3 => [ * 0 => ' first 3', * 'key6' => 12, * 4 => 'first 4 ' * ], * 4 => true, * 'key8' => 'first 2 ' * ] */
从数组中删除 NULL 数据
数据
$array = [ 0 => ' first 1 ', 'key1' => false, 1 => '', 2 => '0', 'key4' => null, 3 => [ 0 => ' first 3', 1 => false, 'key2' => '', 2 => '0', 'key5' => null, 'key6' => 12, 3 => [], 4 => 'first 4 ' ], 4 => true, 5 => [], 'key8' => 'first 2 ' ];
示例
Arrays::removeNull($array); /** * [ * 0 => ' first 1 ', * 'key1' => false, * 1 => '', * 2 => '0', * 3 => [ * 0 => ' first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key5' => null, * 'key6' => 12, * 3 => [], * 4 => 'first 4 ' * ], * 4 => true, * 5 => [], * 'key8' => 'first 2 ' * ] */
递归
Arrays::removeNull($array, true); /** * [ * 0 => ' first 1 ', * 'key1' => false, * 1 => '', * 2 => '0', * 3 => [ * 0 => ' first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key6' => 12, * 3 => [], * 4 => 'first 4 ' * ], * 4 => true, * 5 => [], * 'key8' => 'first 2 ' * ] */
修剪数组数据
数据
$array = [ 0 => ' first 1 ', 'key1' => false, 1 => '', 2 => '0', 'key4' => null, 3 => [ 0 => ' first 3', 1 => false, 'key2' => '', 2 => '0', 'key5' => null, 'key6' => 12, 3 => [], 4 => 'first 4 ' ], 4 => true, 5 => [], 'key8' => 'first 2 ' ];
示例
Arrays::trim($array); /** * [ * 0 => 'first 1', * 'key1' => false, * 1 => '', * 2 => '0', * 'key4' => null, * 3 => [ * 0 => ' first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key5' => null, * 'key6' => 12, * 3 => [], * 4 => 'first 4 ' * ], * 4 => true, * 5 => [], * 'key8' => 'first 2' * ] */
递归
Arrays::trim($array, true); /** * [ * 0 => 'first 1', * 'key1' => false, * 1 => '', * 2 => '0', * 'key4' => null, * 3 => [ * 0 => 'first 3', * 1 => false, * 'key2' => '', * 2 => '0', * 'key5' => null, * 'key6' => 12, * 3 => [], * 4 => 'first 4' * ], * 4 => true, * 5 => [], * 'key8' => 'first 2' * ] */
数组 TO 字符串
示例
Arrays::toString([ 'option1' => 'value1', 'option2' => 'value2', ]); // option1:value1;option2:value2;
更改分隔符
Arrays::toString([ 'option1' => 'value1', 'option2' => 'key1:value1;key1:value2;', ], '="', '" '); // option1="value1" option2="key1:value1;key1:value2;"
测试 & 代码覆盖率
使用 PHPUnit 进行单元测试。单元测试确保类和方法确实按照预期执行。
一般 PHPUnit 文档可在 https://phpunit.de/documentation.html 找到。
要运行 PHPUnit 单元测试,请执行
phpunit PATH/TO/PROJECT/tests/
如果您想生成代码覆盖率报告,请使用以下命令
phpunit --coverage-html ./report PATH/TO/PROJECT/tests/
使用 PHPUnit 默认配置
phpunit --configuration PATH/TO/PROJECT/phpunit.xml
捐赠
您可以通过这里支持此项目。您还可以通过为项目做出贡献或报告错误来帮助。即使提出功能建议也非常有用。任何帮助都将是极大的赞赏。
许可协议
ARRAYS CSE HELPERS 是一个开源的 PHP 库,许可协议为 MIT 许可。请参阅 许可文件 获取更多信息。
GitHub @cs-eliseev