Php 递归迭代数组以更改特定键';s值

Php 递归迭代数组以更改特定键';s值,php,Php,我有这样一个数组: $a = array( 'key1' => 'value1', 'key2' => 'value2', 'key3' => array( 'key4' => 'value4', 'key5' => array( 'key6' => 'value6' ) ) ); 正如您所看到的,$a $a = array( 'key1' =&g

我有这样一个数组:

$a = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => array(
        'key4' => 'value4',
        'key5' => array(
            'key6' => 'value6'
        )
    )
);
正如您所看到的,
$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');
现在,我有一个密钥列表,例如:

key1
key4
key6
我需要一个脚本,搜索这些键是否存在,如果存在,请更改它们的值。 我需要使用
base64\u encode(\u键的值)

因此,可能需要一个回调函数来获取当前值,并使用base64_encode()函数对其进行转换

有人能帮我吗

我想看看当前的php函数,但似乎没有这样的函数

谢谢

编辑:

使用以下代码,我可以在回调中获取键……但问题是:

如何直接修改数组中的值?我是说。。。。好啊我得到键和值,但如何更改原始数组中的值?(
$a

$a=数组(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>数组(
'key4'=>'value4',
“key5”=>数组(
“键6”=>“值6”
)
)
);
功能测试($item,$key)
{
回显“$key.$item
\n”; } 数组_walk_recursive($a,“test”);
array\u walk\u recursive()。更多信息。

谢谢您的回复,但请看一下我在问题中所做的编辑。Thanks@Dail使用
函数测试(&$item,$key)
(注意
&
)并在函数内修改
$item