@9StarRu

Как сохранить данные из json не по дате?

Есть класс с функциями

<?php 

class DataBase {
private $file;
private $data = [];

function __construct($file)
{
    $this->file = $file;
    $this->data = (array) @json_decode(file_get_contents($file), true);
}

public function add($id, $item)
{
    if(isset($this->data[$id])) {
        return false;
    }

    $this->data = [$id => $item] + $this->data;

    return true;
}

public function find($id)
{
    if(!isset($this->data[$id])) {
        return false;
    }

    return $this->data[$id];
}

public function remove($id)
{
    if(!isset($this->data[$id])) {
        return false;
    }

    unset($this->data[$id]);

    return true;
}

public function replace($id, $item) 
{
    if(!isset($this->data[$id])) {
        return false;
    }

    $this->data[$id] = $item;

    return true;
}

public function save()
{
    return file_put_contents($this->file, json_encode($this->data));
}

public function all()
{
    return $this->data;
}
}


сохраняю полученный результат в db_feat.json

Часть парсера

$items = $db_feat->all();
 
foreach ($items as $id => $item) {
  try {
    $info = $parser->getItem($id);
    $db_feat->replace($id, $info);
  } catch(Exception $e) {
    $db_feat->remove($id);
  }
 
  sleep(SLEEP_CHECK);
}
 
for($page = 5; $page >= 1; $page--) {
  // Загрузка 
 
  $items = $parser->getMarketplace('feat', $page);
 
  foreach ($items as $item) {
    $db_feat->add($item['id'], $item); // Добавляем в базу
  }
  sleep(SLEEP);
}
 
$db_feat->save();


Подскажите, как сохранить результат не сортируя по дате, т.е. как получил так и сохранил.

Спасибо!
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 1
KorniloFF
@KorniloFF
Работаю по font-end / JS
PHP7+
public function add($id, $item)
{
   $this->data{$id] = $this->data[$id] ?? $item;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы