递归迭代数组以更改特定键的值

时间:2012-08-10 10:41:15

标签: php

我有一个这样的数组:

$a = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => array(
        'key4' => 'value4',
        'key5' => array(
            'key6' => 'value6'
        )
    )
);

正如您所见,$a

中有内部数组

现在,我有一个键列表,例如:

key1
key4
key6

我需要一个脚本来搜索这些密钥是否存在,以及是否存在更改其值。 我需要使用base64_encode($value_of_the_key)

更改其值

所以也许是一个回调,它获取当前值并使用base64_encode()函数转换它。

有人帮我吗?

我想看看当前的php函数,但似乎没有人能做到这一点。

感谢

修改

使用以下代码我可以获得回调中的密钥....但问题是:

如何直接修改数组中的值?我的意思是......好吧......我得到了键和值,但是如何更改原始数组中的值? ($a

$a = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => array(
        'key4' => 'value4',
        'key5' => array(
            'key6' => 'value6'
        )
    )
);


function test($item, $key)
{
    echo "$key. $item<br />\n";
}


array_walk_recursive($a, 'test');

1 个答案:

答案 0 :(得分:5)

提供回调的

array_walk_recursive()应该有所帮助。更多信息here