Представьте, что вы хотите применить пользовательскую функцию к вашему массиву, но только к определенной паре ключ => значение, это моя улучшенная версия:
$data = array( "test" => array("abc" => "xyz", 'def'=> 2), 'test2' => array ( 'abc' => 'jkl', 'def' => 5) );
$keytochange = 'def';
$apply = 'md5';
$data = f($data,$keytochange,$apply);
function f($array, $keytochange, $apply)
{
foreach ($array as $key => $value)
{
if (is_array($value))
$array[$key] = f($value,$keytochange,$apply);
else
$array[$keytochange] = $apply( $value );
}
return $array;
}
print_r($data);
Вывод:
Array
(
[test] => Array
(
[abc] => xyz
[def] => c81e728d9d4c2f636f067f89cc14862c
)
[test2] => Array
(
[abc] => jkl
[def] => e4da3b7fbbce2345d7772b0674a318d5
)
)