Как ускорить парсинг JSON файла?

184
21 декабря 2021, 11:10

Пишу парсер для steam инвентаря.

Имеется: источник цен (огромный json файл с названием предмета и его ценой), инвентарь юзера.

Задача: Поиск соответствия предмета из инвентаря юзера с его ценой в json файле.

Проблема в том, что это может занимать очень долгое время (пару минут), даже если у юзера нужно оценить лишь 1 предмет из инвентаря, а может и вообще ничего не найти. Каким образом можно ускорить поиск совпадения?

На похожих сайтах инвентарь оценивается за пару секунд, несмотря на кол-во предметов.

Код:

public function index()
    {
        $id = Auth::user()->id;
        $user = User::find($id);
        $items = $this->steamInventory
            ->loadInventory($user->steamid, 570)->getInventoryWithDescriptions();
        $price = file_get_contents('../public/v2.json');
        $json = \GuzzleHttp\json_decode($price, true);
        $value = $json['items'];
        for ($p=0;$p < count($items);$p++){
                $result[] = array(
                    'name' => $items[$p]['name'],
                    'price' => $value[$items[$p]['market_name']]['price'] ?? 'Цена не определена',
                    'icon' => $items[$p]['icon_url']
                );
        }
        return $json = \GuzzleHttp\json_encode($result);
READ ALSO
Как правильно подключить скрипты к WordPress?

Как правильно подключить скрипты к WordPress?

У меня есть скрипты, которые я подключаю в файле functionsphp

152
настроить Apache для yii2 starter kit

настроить Apache для yii2 starter kit

использую OpenServer на windows, установил yii2-starter-kit, но не могу настроить Apache в htaccess

200
Запрос insert PDO PHP

Запрос insert PDO PHP

Хочу записать все $value в таблицу users столбец lastnameКак?

161