[英]replacing in a multidimensional associative-array
假设我有一个多维关联数组:
$haystack =
[
"httpMethod" => "GET",
"responseFormat" => "",
"query" => [
"uname" => "username",
"pass" => "password"
]
];
我还有另一个简单的数组:
$needle = [
"username" => "123",
"password" => "456"
];
我的目标是递归搜索第一个值表示“用户名”的用户,并将其替换为第二个数组中的值。
因此,返回的数组为:
$result = [
"httpMethod" => "GET",
"responseFormat" => "",
"query" => [
"uname" => "123",
"pass" => "456"
]
];
什么是最有效,最易读的方法? 知道干草堆阵列可以有不同的结构。
尝试array_walk_recursive() ,保存数组的任何键都不会传递给该函数。
array_walk_recursive( $haystack, function( &$item, $key ) use ( $needle ) {
if ( array_key_exists( $item, $needle ) )
$item = $needle[ $item ];
});
这是最基本的方法
$haystack['query']['uname'] = $needle['username'];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.