Ребят, всем доброго времени суток!
У меня к одной задачи сразу два вопроса. Я получаю по API очень большой json в нем на данный момент 80.000 строк и весит файл порядка 15 мб.
Тут сразу у меня появляется вопрос как в данном случае быть, сохранять джейсон в файл и таскать данные из него либо все же записывать его в базу? Файл со временем будет только увеличиваться.
Для себя принял решение что буду искать данные в джейсоне и выводить инфу на страницу.
Джейсон выглядит следующим образом
Спойлер (Отобразить)CODE ( text):
скопировать код в буфер обмена
{"success":true,"data":[ { "id":1, "level":6, "user":1, "depth":0, "parent":"#" }, { "id":7, "level":5, "user":7, "depth":1, "parent":1 }, { "id":8, "level":5, "user":8, "depth":1, "parent":1 }, { "id":50, "level":5, "user":50, "depth":2, "parent":7 } ]}
Здесь надо найти текущего пользователя user взять у него parent и найти все записи связанные с ним.
Например джейсон из примера должен отобразить данные:
1. начинаем с user=50 и узнаем у него parent
2. найти где id=7 и у этого id взять тоже parent
3. теперь зная parent у 7 записи ищем следующую запись.
и так надо пройти пока не упремся в parent: #
Начал все это делать и стал получатся такой код:
CODE ( text):
скопировать код в буфер обмена
$file = file_get_contents('/data/'.$row['unixdata'].'.json'); $res = json_decode($file, true); $id = 7; foreach ($res['data'] as $obj1) { if($obj1['id'] == $id) { $parent = $obj1['parent']; break; } }
код работает только для первого поиска. Но вот как сделать эту цепочку?
И так же мне очень интересно как вы стали бы обрабатывать большой json сохраняли бы в базу или в файл?
|