3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Given an array and a set of `old => new` keys, * will recursively replace all array keys that * are old with their corresponding new value. * * @param mixed $array * @param array $old_to_new_keys * * @return array */ function array_replace_keys($array, array $old_to_new_keys) { if(!is_array($array)){ return $array; } $temp_array = []; $ak = array_keys($old_to_new_keys); $av = array_values($old_to_new_keys); foreach($array as $key => $value){ if(array_search($key, $ak, true) !== false){ $key = $av[array_search($key, $ak)]; } if(is_array($value)){ $value = array_replace_keys($value, $old_to_new_keys); } $temp_array[$key] = $value; } return $temp_array; } $old = array( 'a' => 'blah', 'b' => 'key', 'c' => 'amazing', 'd' => array( 0 => 'want to replace', 1 => 'yes I want to' ) ); $replace = ["a" => "AA", 1 => 11]; var_export(array_replace_keys($old, $replace));
Output for git.master, git.master_jit, rfc.property-hooks
array ( 'AA' => 'blah', 'b' => 'key', 'c' => 'amazing', 'd' => array ( 0 => 'want to replace', 11 => 'yes I want to', ), )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
111.01 ms | 405 KiB | 5 Q