не получается изменить значение в массиве
мне нужно перезаписать значение в "cityname" на значение которые в переменной $result, я попробовал вот так и у меня не получается
$data = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/regions.json'), true);
foreach ($data as $datum) {
$result = GeographicalNamesInflection::getCase($datum['cityname'], 'предложный');
$cityfals = $datum['cityname'];
$cityname = $result;
$oldname = trim($cityfals);
$newname = trim($cityname);
foreach ($data as $key => $value) {
if (in_array($oldname, $value)) {
$taskList[$key] = array('cityname' => "$newname");
}
}
file_put_contents('regions.json', json_encode($data, JSON_UNESCAPED_UNICODE));
}
массив выглядит таким образом
`"элиста": {
"identyfyon": "8",
"name_two": "Республика Калмыкия",
"code": "8",
"code_two": "8",
"alias": "элиста",
"region_name": "Республика Калмыкия",
"popular": "no",
"sort_top": "",
"cityname": "Элисте",
"regionname": "Республике Калмыкия"
},`
на выходе я должен получить такой же массив только с заменённым значением cityname
Ответы (1 шт):
Автор решения: venomphp
→ Ссылка
обновить не получилось, но получилось так, заново создавать массив со значениями с прошлого массива
`foreach ($data as $datum) {
$result = GeographicalNamesInflection::getCase($datum['cityname'], 'предложный');
$cityfals = $datum['cityname'];
$cityname = $result;
$oldname = $cityfals;
$newname = $cityname;
foreach ($data as $key => $value) {
if (in_array($oldname, $value)) {
$taskList[$key] = array(
'identyfyon' => $datum['identyfyon'],
'name_two' => $datum['name_two'],
'code' => $datum['code'],
'code_two' => $datum['code_two'],
'alias' => $datum['alias'],
'region_name' => $datum['region_name'],
'popular' => $datum['popular'],
'sort_top' => $datum['sort_top'],
'cityname' => $newname,
'regionname' => $datum['region_name']);
}
}
file_put_contents('cityname.json', json_encode($taskList, JSON_UNESCAPED_UNICODE));
}`