繁体   English   中英

替换多维关联数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM