在多维数组中搜索和替换
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');
我有以下多维数组,我想替换
的值 $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');