[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Собрать заново массив с другими значениями json
Godwarlock
Есть такой вот массив
{"1":{"id":2,"amount":0},"2":{"id":3,"amount":0}}


Суть в том, что мне нужно изменить значение amount того id, который указан по условию.
Сейчас это выглядит примерно так
$json_res = json_decode($result['enemy_defeat'], true);
$all_quest = '';
foreach($json_res as $key=>$value)
{
if($value['id'] == $enemy_id)
{
$value['amount'] += 1;
}

Вроде как работает. Вопрос стоит в том, как мне теперь собрать новый массив исходя из новых значений и заэнкодить его таким же образом, как было изначально, только с другими значениями.
killer8080
json_encode() уже отменили? smile.gif
Godwarlock
killer8080
Конкретно интересует логика) Если я просто сделаю
$json_res = json_decode($result['enemy_defeat'], true);
$all_quest = '';
foreach($json_res as $key=>$value)
{
if($value['id'] == $enemy_id)
{
$value['amount'] += 1;
}
}

$json_enc = json_encode($json_res,JSON_FORCE_OBJECT);
var_dump($json_enc);


Соответствено вардамп мне выдает
string(49) "{"1":{"id":2,"amount":0},"2":{"id":3,"amount":0}}"

Тобишь вообще без изменений.
killer8080
Цитата (Godwarlock @ 27.05.2015 - 20:30)
Тобишь вообще без изменений.

все правильно, ты же ничего не изменил в массиве smile.gif

foreach($json_res as $key => &$value)

в конце не забудь unset($value)
Godwarlock
killer8080
Спасибо большое))
Godwarlock
killer8080
Вернусь к вопросу. Зачем все таки делать unset()? Для чего нужно уничтожить переменную?
killer8080
Цитата (Godwarlock @ 28.05.2015 - 17:42)
Зачем все таки делать unset()? Для чего нужно уничтожить переменную?
AllesKlar
Godwarlock
Уничтожай... ой, уничтожай...
Я однажды чуть волосы изподмышек не повыдергивал, отлавливая эту багу.

_____________
[продано копирайтерам]
Godwarlock
Хорошая статья)
Godwarlock
Разобрался
AllesKlar
Все там нормально выводит.

$item_arr = '{"1":{"id":34,"amount":0},"2":{"id":35,"amount":0},"3":{"id":36,"amount":0}}';

var_dump(go($item_arr)); // int 0

function go($item_arr)
{
$json_items = json_decode($item_arr, true);
foreach($json_items as $key => &$values)
{
$col = $values['amount'];
return $values['amount'];

}
}


Другой вопрос, что в данном коде напрочь отсутсвет логика.
Что нужно-то? Словами напиши.

----------------------
up
плохой тон удалять сообщения.
Ты разобрался, через месяц придет новичек, может у него такая же проблема.

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.