Mar*_*ark 0 php recursion multidimensional-array
我在 PHP 中有这个:
$data = array("test"=>array("abc"=>"xyz"));
Run Code Online (Sandbox Code Playgroud)
我想附加 ' data: ' 与数组值,因此该$data数组的输出将是 ' data:xyz ' 。
它只是一个样本。我怎样才能用多维数组做到这一点。IE; 用多维数组值附加字符串?我可以在同一个数组中使用持久值,以便我可以重新使用它吗?
有一个 PHP 函数“将用户函数递归地应用于数组的每个成员”,它是array_walk_recursive()。
这是一个使用闭包的 PHP 5.3 示例:
array_walk_recursive($data, function(&$str) { $str = "data:$str"; });
Run Code Online (Sandbox Code Playgroud)
如果你觉得花哨,你可以让它成为一个接受可配置前缀的函数,例如:
function prepend(&$v, $k, $prefix)
{
$v = $prefix . $v;
}
array_walk_recursive($data, 'prepend', 'data:');
Run Code Online (Sandbox Code Playgroud)