johnykvsky/arrayhelper

基于 KohanaPHP::Arr 的 ArrayHelper

0.2.0 2020-06-03 21:10 UTC

This package is auto-updated.

Last update: 2024-09-15 03:34:28 UTC


README

Latest Version on Packagist Software License Total Downloads Build Status

ArrayHelper - 基于 KohanaPHP Arr 类。正确的合并,没有惊喜 - 请参阅示例用法。

安装

通过 Composer

$ composer require johnykvsky/arrayhelper

应能在 PHP 5.6 上正常工作,但我没有检查这一点。只需更改 composer.json 中的所需 PHP 版本,也许可以删除开发包。以及代码中的类型提示。

用法

use johnykvsky\Utils\ArrayHelper;
$array = array('johny'=>array('age'=>30,'weight'=>70),'chris'=>array('height'=>170));
$array2 = array('hobby'=>array(array('music'=>'rock')));

$result = ArrayHelper::merge($array, $array2); //merge arrays

$array3 = array('chris'=>array('weight'=>70));
$array1 = array('fragment' => 'x', 'attributes' => array('title' => 'X', 'class' => array('a', 'b')));
$array2 = array('fragment' => 'y', 'attributes' => array('title' => 'Y', 'class' => array('c', 'd')));

$result = ArrayHelper::merge($array1, $array2); //deep merge, fragment = y / attributes: title = Y / class = a,b,c,d
$result = ArrayHelper::merge($array1, $array2, false); //non-deep, fragment = y / attributes title = Y / class = c,d

//potential problem with array_merge_recursive:
$incorrect = array_merge_recursive($array1, $array2);
//result is array('fragment' => array('x', 'y'), 'attributes' => array('title' => array('X', 'Y'), 'class' => array('a', 'b', 'c', 'd'))).

$array4 = ['foo' , 'arj','pak'];
$array5 = ['foo' => 'tar', 'baz'=>'zip'];
//combine - get all values from array5 into array4
$result = ArrayHelper::combine($array4, $array5);
//result is ['foo','arj','pak','tar','zip']

$foo = ArrayHelper::firstValue($array5); // tar
$baz = ArrayHelper::lastValue($array5); // zip

$bar = ArrayHelper::flatten($array1); // ['x','X','a','b']

测试

$ composer test

代码检查

$ composer phpstan
$ composer phpstan-max

安全

如果您发现任何安全相关的问题,请通过电子邮件 johnykvsky@protonmail.com 联系我们,而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅许可文件