Задать вопрос
@Deletron247

Как откинуть ненужные запросы в json?

Есть такой код
$json_tv_anime = json_decode($this->videocdn_get($data, 'anime-tv-series') , true);
$json_tv_show = json_decode($this->videocdn_get($data, 'show-tv-series') , true);
$json_tv_series = json_decode($this->videocdn_get($data, 'tv-series') , true);

if ($json_tv_anime['status'] == 'true') {
	$response = $json_tv_anime;
}
elseif ($json_tv_show['status'] == 'true') {
	$response = $json_tv_show;
}
elseif ($json_tv_series['status'] == 'true') {
	$response = $json_tv_series;
}
else {
	$response['status'] = 'false';
}

Я делаю 3 разных запроса в api чтобы узнать к какому типу принадлежит видео но в независимости от того вернул первый запрос ответ или нет он все равно сделает три запроса. как оптимизировать это чтобы он спросил у api это аниме или нет если да то 2 следующих обращения не делать если нет то опрашиваем api пока не получим нужные данные. вроде понятно обьяснил а там посмотрим
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
опрашиваем api пока не получим нужные данные
В вашей постановке уже есть большая часть ответа - формулировка "пока не" чётко указывает на необходимость использования цикла.

foreach (['anime-tv-series', 'show-tv-series', 'tv-series'] as $type) {
  $json = json_decode($this->videocdn_get($data, $type), true);

  if ($json['status'] == 'true') {
    return $json;
  }
}

return ['status' => 'false'];


Ну или то же самое, но без return:
$response = ['status' => 'false'];

foreach (['anime-tv-series', 'show-tv-series', 'tv-series'] as $type) {
  $json = json_decode($this->videocdn_get($data, $type), true);

  if ($json['status'] == 'true') {
    $response = $json;
    break;
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
part_os
@part_os
Сложное в простом
сделайте return внутри условия ну и вызовы последовательно
elseif ($json_tv_series['status'] == 'true') {
  return $json_tv_series;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽