germanovs / php-keys-mover
Allows you to change keys positions in arrays
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 5
pkg:composer/germanovs/php-keys-mover
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2025-12-24 23:42:36 UTC
README
Purpose
This class is intended to change keys order in associative arrays with one line of code.
Installation
composer require germanovs/php-keys-mover
Properties
string $message
Contains information about last operation. You can read this to find what excatly went wrong, if any methods returned false.
Methods
move(array &$array, string|integer $key, string|integer $where): bool
- Moves
$keyin$whereposition inside$array. $keyand$whereand can be string as key or integer as index.- Modifies source array directly.
- Returns
trueon success andfalseon failure.
Usage
$keyMover = new KeysMover\KeysMover(); $array = [ 'one' => 1, 'two' => 2, 'three' => 3 ];
$keyMover->move($array, 'one', 'two'); /* result: [ 'two' => 2, 'one' => 1, 'three' => 3 ] */
$keyMover->move($array, 'two', 2); /* result: [ 'one' => 1, 'three' => 3, 'two' => 2 ] */
Future plans
These methods will be available in future versions
-
shift(array &$array, string|integer $key, integer $shift): boolMoves$keyby$shiftpositions Ex:$keysMover->shift($array, 'three', -2); -
moveAfter(array &$array, string|integer $key, string|integer $target): boolPuts$keyafter$targetEx:$keysMover->moveAfter($array, 'three', 'one'); -
moveBefore(array &$array, string|integer $key, string|integer $target): boolPuts$keybefore$targetEx:$keysMover->moveAfter($array, 'three', 'two'); -
rearrange(array &$array, array $order): boolRearranges keys in$array, using$orderas pattern Ex:$keysMover->rearrange($array, ['two', 'three', 'one']);
Methods move() and shift() will get bool $swap = false argument. This will alow to move replaced key to initial position of moved key.
Please, feel free to open a discussion with your feedback, thoughts, feature proposals etc.
License
MIT
Free Software, Hell Yeah!