递归数组键替换

tak*_*hin 4 php recursion

我有很大的递归数组,混合数字和字符串键.

哪个是用字符串键替换数字键的最快方法(每个数字前缀item_)?

例如.

array('key_1' => 'val1', 2 => array( 3 => 'val3'));
Run Code Online (Sandbox Code Playgroud)

array('key_1' => 'val1', 'item_2' => array('item_3' => 'val3'));
Run Code Online (Sandbox Code Playgroud)

我希望项目的顺序保持不变.

Sea*_*ber 5

function replace_numeric_keys(&$array) {
    $result = array();
    foreach ($array as $key => $value) {
        if (is_int($key)) $key = "item_$key";
        if (is_array($value)) $value = replace_numeric_keys($value);
        $result[$key] = $value;
    }
    return $result;
}
Run Code Online (Sandbox Code Playgroud)