У меня есть многомерная карта (коллекция) $ data в PHP hack. Я хочу, чтобы искать ключ «дорогу» и заменить его значение сЭлементы коллекции не могут быть сделаны по ссылке в php
map{ 'test' => abc};
У меня есть основные массивы
$keys = ['meta', 'attr', 'road'];
ниже мой Карта
$data = Map {'meta' => Map {
'time' => 11.364,
'count' => 3,
'attr' => Map {
'id'=> 7845,
'road' => Map {
'length' => 'km',
'width' => 'm'
}
}
},
'Assets' => [15,78,89]
};
Я пытался ниже коды но дайте мне ошибку:
$keys = ['meta','attr'];
$arr = &$data;
foreach($keys as $key)
{
$arr = &$arr[$key];
}
$arr = map{ 'test' => abc};
Любые мысли, как я могу реализовать алгоритм поиска и замены?
В чем ошибка, с которой вы столкнулись? Включение фактического текста ошибки всегда полезно. Элементы коллекции не могут быть взяты по ссылке, которая по дизайну. Ссылки и на массивы имеют супер удивительную семантику в PHP, поэтому библиотеки коллекций просто не позволяют этого. Одна из этих удивительных семантик: попробуйте свой код с массивами. Я уверен, что он уничтожит '$ data', так как каждый раз, когда вы перебираете цикл, вы будете перезаписывать внешние' $ data' одним из своих составных элементов. –