3v4l.org

run code in 300+ PHP versions simultaneously
<?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