gordon_shamway
@gordon_shamway

Как правильно добавить значение в json массив?

Есть такой json
{"People":[{"first":"Viktor"},{"first":"Viktor"},{"first":"Viktor"}]}

Как добавить новое значение внутрь массива чтобы он выглядел так
{"People":[{"first":"Viktor","last_name":"Gav"},{"first":"Viktor","last_name":"Gav"},{"first":"Viktor","last_name":"Gav"}]}

Я пробовал так
$json ='{"People":[{"first":"Viktor"},{"first":"Viktor"},{"first":"Viktor"}]}';
$add = json_decode($json,true);
echo count($add["People"]);
for ($i=0; $i <count($add["People"]); $i++) { 
	array_push($add['People'][$i],["last_name"=>"Gav"]);
}
print_r(json_encode($add,JSON_UNESCAPED_UNICODE));

но на выходе получаю не то что мне нужно
{"People":[{"first":"Viktor","0":{"last_name":"Gav"}},{"first":"Viktor","0":{"last_name":"Gav"}},{"first":"Viktor","0":{"last_name":"Gav"}}]}
  • Вопрос задан
  • 361 просмотр
Решения вопроса 2
pashted
@pashted
тыжпрограммист
foreach ($add["People"] as $index => $value) {
    $add['People'][$index]['last_name'] = "Gav";
}

{"People":[{"first":"Viktor","last_name":"Gav"},{"first":"Viktor","last_name":"Gav"},{"first":"Viktor","last_name":"Gav"}]}
Ответ написан
Комментировать
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
А что бы в твоем коде работало нужно вместо
array_push($add['People'][$i],["last_name"=>"Gav"]);

прописать просто
$add['People'][$i]["last_name"] = 'Gav';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы