递归数组键替换

时间:2010-08-24 19:11:03

标签: php recursion

我有一个很大的递归数组,带有混合的数字和字符串键。

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

例如

array('key_1' => 'val1', 2 => array( 3 => 'val3'));

array('key_1' => 'val1', 'item_2' => array('item_3' => 'val3'));

我希望商品的订单保持不变。

1 个答案:

答案 0 :(得分: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;
}