<?php
$data = [
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
];
function mangle_array($key_to_remove, $key_to_place_after, array $data)
{
$tmp_value = $data[$key_to_remove];
$new_data = $data;
unset($new_data[$key_to_remove]);
$to_place_after_position = array_search($key_to_place_after, array_keys($new_data));
$before = array_slice($new_data, 0, $to_place_after_position + 1);
$middle = [$key_to_remove => $tmp_value];
$after = array_slice($new_data, $to_place_after_position + 1);
return array_merge($before, $middle, $after);
}
$data_mangled = mangle_array('b', 'c', $data);
var_dump($data_mangled);
- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- array(4) {
["a"]=>
int(1)
["c"]=>
int(3)
["b"]=>
int(2)
["d"]=>
int(4)
}
preferences:
122.69 ms | 402 KiB | 121 Q