JSON декодировать API в PHP Foreach не удается

Почти это работает, но я просто упускаю какую-то глупость.

Большая часть этого была взята из примера Cryptsy API.

Переменные заполняются, но просто что-то не так с синтаксисом foreach.

Я получаю сообщение об ошибке: «Предупреждение: неверно указан аргумент для foreach ()» на foreach ($ marketinfo as $ marketdata) {line

$result = json_decode($res,true);

foreach($result as $marketinfo){
foreach($marketinfo as $marketdata){
$marketid = $marketdata['marketid'];
$label = $marketdata['label'];
$pcc = $marketdata['primary_currency_code'];
$pc = $marketdata['primary_currency_name'];
$scc = $marketdata['secondary_currency_code'];
$sc = $marketdata['secondary_currency_name'];
$cv = $marketdata['current_volume'];
}
}

Небольшая помощь, чтобы пройти через это было бы оценено.

-1

Решение

Вам нужно выяснить, что типа $ marketinfo. использование is_array () и / или GetType (), пример:

$result = json_decode($res,true);

try {
foreach($result as $key=>$marketinfo){
if(is_array($marketinfo)){
foreach($marketinfo as $marketdata){
$marketid = $marketdata['marketid'];
$label = $marketdata['label'];
$pcc = $marketdata['primary_currency_code'];
$pc = $marketdata['primary_currency_name'];
$scc = $marketdata['secondary_currency_code'];
$sc = $marketdata['secondary_currency_name'];
$cv = $marketdata['current_volume'];
}
}else{
throw new Exception($key . ' $marketinfo is not an array, is '.gettype($marketinfo));
}
}
}catch(Exception $e){
echo $e->getMessage();
}
0

Другие решения

Наиболее вероятная проблема заключается в том, что $marketinfo это не массив.

echo или же print_r() $marketinfo чтобы подтвердить, что его содержимое является массивом, перед циклом с foreach.

0

По вопросам рекламы [email protected]