crissi / array-key-change
Easily change keys in a array of any depth
v1.0.0
2019-11-03 17:50 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ~7.0|~8.0
This package is auto-updated.
Last update: 2025-01-29 06:37:41 UTC
README
Easily change keys in a array of any depth
Example:
$source = [
'alpha' => [
'bravo' => [
'nested' => [1, 2, 3]
]
],
'whiskey' => [44,45, 45],
'charlie' => [
['foo' => '222'],
['foo' => '44444'],
['foo' => '444'],
[
'foo' => 'text',
'lol' => '3434'
],
],
];
$result = ArrayKeyChange::in($source)
->skipMissingPaths()
->modify([
'alpha.bravo.nested' => 'delta',
'alpha' => 'foxtrot',
'alpha.bravo' => 'echo',
'charlie.*.lol' => 'rofl',
'charlie' => 'omega'
]);
Result:
[
'foxtrot' => [
'echo' => [
'delta' => [1, 2, 3]
]
],
'whiskey' => [44,45, 45],
'omega' => [
['foo' => '222'],
['foo' => '44444'],
['foo' => '444'],
[
'foo' => 'text',
'rofl' => '3434'
],
],
];
Use skipMissingPaths() to avoid errors on missing keys
Use the star-operator (*) to traverse sequential arrays