在多维数组中搜索和替换

时间:2015-02-25 00:53:06

标签: php arrays search multidimensional-array replace

我有多维数组,我想替换

的值
 $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]

        ];

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

2 个答案:

答案 0 :(得分:0)

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

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

$arr = ['test'];

答案 1 :(得分:0)

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

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

See arrays section on Php reference

所以在你的情况下是;

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