Приветствую! Подскажите, как правильно обновить массив. Добавляю данные таким образом:
$name = "Василий";
$phone = '+798522141';
$name2 = 'Иван';
$old = 25;
$file = file_get_contents('new.json');
$taskList = json_decode($file);
$id_count = count ($taskList)+1;
$id_count_total = "20".$id_count;
unset($file);
$taskList[] = array(
'id_project'=>$id_count_total,
'name'=>$name,
'phone_sto'=>$phone,
'teem'=>array(
'names'=>$name2,
'olg'=>$old
)
);
$datas = json_encode($taskList, JSON_PRETTY_PRINT);
file_put_contents('new.json', $datas);
unset($taskList);
Получаю:
[
{
"id_project": "201",
"name": "\u0412\u0430\u0441\u0438\u043b\u0438\u0439",
"phone_sto": "+798522141",
"teem": {
"names": "\u0418\u0432\u0430\u043d",
"olg": 25
}
},
{
"id_project": "202",
"name": "\u0412\u0430\u0441\u0438\u043b\u0438\u0439",
"phone_sto": "+798522141",
"teem": {
"names": "\u0418\u0432\u0430\u043d",
"olg": 25
}
}]
Я хочу в фикле foreach найти объект который содержит определенный id_project и в него добавить новые данные в teem чтобы в итоге получилось:
{
"id_project": "204",
"name": "Егор",
"phone_sto": "+79991234567",
"teem": [{
"names": "Коля",
"olg": 25
},
{
"names": "Вася",
"olg": 30
}
]
}
Т.е. в teem добавлять новых членов команды.
Написал такое решение, но не знаю, что нужно указать в цикле, чтобы значение было записано в конкретный проект project_id.
$file = file_get_contents('new.json');
$taskList=json_decode($file);
foreach ( $taskList as $key){
if ($key->id_project == '202' ) {
$newdatas[] = ??????
} }
file_put_contents('new.json',json_encode($newdatas, JSON_PRETTY_PRINT));
unset($taskList); // Очистить переменную $taskList
Пытался по-разному, но получается так, что весь файл Json полностью перезаписывается и оставется только то, что я указал в цикле, а другие все данные стираются.