how to change a key in an array while maintaining the order?

arrays, php

Solution

http://ideone.com/nCZnY

$array = array('a' => 1, 'd' => 2, 'c' => 3); //associative array

// rename $array['d'] as $array['b']
$array = replace_key_function($array, 'd', 'b');

var_export($array); // array('a' => 1, 'b' => 2, 'c' => 3); same order!

function replace_key_function($array, $key1, $key2)
{
    $keys = array_keys($array);
    $index = array_search($key1, $keys);

    if ($index !== false) {
        $keys[$index] = $key2;
        $array = array_combine($keys, $array);
    }

    return $array;
}

Problem

How i can do this: ``` $array = array('a' => 1, 'd' => 2, 'c' => 3); //associative array // rename $array['d'] as $array['b'] $array = replace_key_function($array, 'd', 'b'); var_export($array); // array('a' => 1, 'b' => 2, 'c' => 3); same order! ``` I didn't see a function that does that. There is a way to do this?

Original source

Related problems