在多维数组中搜索和替换

Search and replace in multidimensional array

我有以下多维数组,我想替换

的值
 $data['meta']['attr']['road'] with an array ['test']

我不知道键,它们只能通过键数组使用

$keys = ['meta', 'attr', 'road'];

这只是一个示例,键可能是任何东西因此想要搜索每个元素,检查它并在找到键时替换

我的多维数组如下:

$data = ['meta' => [
             'time' => 11.364,
             'count' => 3,
              'attr' => [
                    'id'=> 7845,
                     'road' => [
                         'length' => 'km',
                         'width' => 'm'
                               ]
                        ]
                   ],
          'Assets' => [15,78,89]

        ];

看起来复杂的搜索和替换算法真的卡住了...有什么想法吗?

$keys = ['meta', 'attr', 'road'];

$arr = &$data;
foreach($keys as $key)
{
    $arr = &$arr[$key];
}

$arr = ['test'];

您可以使用方括号和访问多维数组值。

// set
$someArray['key']['key'] = 'value';
// get
$someVar = $someArray['key']['key'];

See arrays section on Php reference

所以你的情况是;

$data['meta']['attr']['road'] = array('test' => 'value');