mulertech / array-manipulation
此类用于操作和组织数组
v1.0.4
2023-07-01 15:44 UTC
Requires
- php: >=7.3
Requires (Dev)
- phpunit/phpunit: ^9
README
此类用于操作和组织数组
安装
使用 composer 安装应用程序包有两种方法
将以下内容添加到 "composer.json" 文件的 require 部分
"mulertech/array-manipulation": "^1.0"
并运行以下命令
php composer.phar update
运行以下命令
php composer.phar require mulertech/array-manipulation "^1.0"
用法
重复值列表
ArrayManipulation::listOfDuplicates([1, 2, 3, 33, 8, 33, 4, 806, 402, 806]);
// [33, 806]
将 "number" 键(或另一个名称)及其数字添加到关联数组中
ArrayManipulation::addNumberKey([0 => ['name' => 'toto'], 1 => ['name' => 'titi']]);
// [0 => ['name' => 'toto', 'number' => 1], 1 => ['name' => 'titi', 'number' => 2]]
通过名称查找差异(可以用于比较旧数组和新数组)
$first = ['akey' => 'avalue', 'anotherkey' => 'secondvalue', 'thirdkey' => 'oldvalue'];
$second = ['akey' => 'avalue', 'anotherkey' => 'notsamevalue', 'thirdkey' => 'newvalue'];
ArrayManipulation::findDifferencesByName($first, $second);
//['anotherkey' => ['secondvalue', 'notsamevalue'],
'thirdkey' => ['oldvalue', 'newvalue']];
按一列或两列排序(您可以选择列名以及每列的升序或降序)
$array = [
0 => ['firstcolumn' => 'apple', 'secondcolumn' => 'zorro', 'thirdcolumn' => 'masked man'],
1 => ['firstcolumn' => 'banana', 'secondcolumn' => 'superman', 'thirdcolumn' => 'masked man'],
2 => ['firstcolumn' => 'cherry', 'secondcolumn' => 'batman', 'thirdcolumn' => 'masked man'],
3 => ['firstcolumn' => 'coconut', 'secondcolumn' => 'alibaba', 'thirdcolumn' => 'unmasked man'],
4 => ['firstcolumn' => 'pineapple', 'secondcolumn' => 'Tom sawyer', 'thirdcolumn' => 'unmasked man']
];
ArrayManipulation::orderByColumn($array, 'thirdcolumn', 'desc', 'secondcolumn'); // default order is asc
//Result :
[
0 => ['firstcolumn' => 'coconut', 'secondcolumn' => 'alibaba', 'thirdcolumn' => 'unmasked man'],
1 => ['firstcolumn' => 'pineapple', 'secondcolumn' => 'Tom sawyer', 'thirdcolumn' => 'unmasked man'],
2 => ['firstcolumn' => 'cherry', 'secondcolumn' => 'batman', 'thirdcolumn' => 'masked man'],
3 => ['firstcolumn' => 'banana', 'secondcolumn' => 'superman', 'thirdcolumn' => 'masked man'],
4 => ['firstcolumn' => 'apple', 'secondcolumn' => 'zorro', 'thirdcolumn' => 'masked man']
];
通过指定键、值以及到最后一个键的键,向数组中添加一个值,
它可以创建最后一个键或将值添加到这个最后一个键中的数组
- 添加一个键及其值
$array = [
'subtest1' => [
'subsubtest1' => 'a value',
'subsubtest2' => 'b value',
'subsubtest3' => 'c value'
],
'subtest2' => [
'subsubsecondtest1' => 'another value a',
'subsubsecondtest2' => 'another value b',
'subsubsecondtest3' => 'another value c',
'subsubsecondtest4' => 'another value d',
],
'subtest3' => [
'othersub' => [
'subsubsub1' => 'value a',
'subsubsub2' => 'value b'
]
]
];
ArrayManipulation::addKeyValue($array, 'keytoaddvalue', ['a first value'], 'subtest3', 'othersub');
//Result :
[
'subtest1' => [
'subsubtest1' => 'a value',
'subsubtest2' => 'b value',
'subsubtest3' => 'c value'
],
'subtest2' => [
'subsubsecondtest1' => 'another value a',
'subsubsecondtest2' => 'another value b',
'subsubsecondtest3' => 'another value c',
'subsubsecondtest4' => 'another value d',
],
'subtest3' => [
'othersub' => [
'subsubsub1' => 'value a',
'subsubsub2' => 'value b',
'keytoaddvalue' => ['a first value']
]
]
];
- 向现有键添加值
$array = [
'subtest1' => [
'subsubtest1' => 'a value',
'subsubtest2' => 'b value',
'subsubtest3' => 'c value'
],
'subtest2' => [
'subsubsecondtest1' => 'another value a',
'subsubsecondtest2' => 'another value b',
'subsubsecondtest3' => 'another value c',
'subsubsecondtest4' => 'another value d',
],
'subtest3' => [
'othersub' => [
'subsubsub1' => 'value a',
'subsubsub2' => 'value b',
'keytoaddvalue' => ['a first value']
]
]
];
ArrayManipulation::addKeyValue($array, 'keytoaddvalue', 'an other value', 'subtest3', 'othersub');
//Result :
[
'subtest1' => [
'subsubtest1' => 'a value',
'subsubtest2' => 'b value',
'subsubtest3' => 'c value'
],
'subtest2' => [
'subsubsecondtest1' => 'another value a',
'subsubsecondtest2' => 'another value b',
'subsubsecondtest3' => 'another value c',
'subsubsecondtest4' => 'another value d',
],
'subtest3' => [
'othersub' => [
'subsubsub1' => 'value a',
'subsubsub2' => 'value b',
'keytoaddvalue' => ['a first value', 'an other value']
]
]
];
通过指定键及其到最后一个键的键,从数组中删除键及其值
$array = [
'subtest1' => [
'subsubtest1' => 'a value',
'subsubtest2' => 'b value',
'subsubtest3' => 'c value'
],
'subtest2' => [
'subsubsecondtest1' => 'another value a',
'subsubsecondtest2' => 'another value b',
'subsubsecondtest3' => 'another value c',
'subsubsecondtest4' => 'another value d',
],
'subtest3' => [
'othersub' => [
'subsubsub1' => 'value a',
'subsubsub2' => 'value b',
'keytoremove' => 'goodbye'
]
]
];
ArrayManipulation::removeKey($array, 'subtest3', 'othersub', 'keytoremove');
//Result :
[
'subtest1' => [
'subsubtest1' => 'a value',
'subsubtest2' => 'b value',
'subsubtest3' => 'c value'
],
'subtest2' => [
'subsubsecondtest1' => 'another value a',
'subsubsecondtest2' => 'another value b',
'subsubsecondtest3' => 'another value c',
'subsubsecondtest4' => 'another value d',
],
'subtest3' => [
'othersub' => [
'subsubsub1' => 'value a',
'subsubsub2' => 'value b',
]
]
];