php foreach中的Json解码api失败


Json decode api in php foreach failing

几乎完成了这项工作,但我只是错过了一些愚蠢的事情。

其中大部分内容取自Cryptsy API示例。

变量正在被填充,但foreach语法有问题。

我得到的错误是foreach($marketinfo为$marketdata)上的"警告:为foreach()提供的参数无效"{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'];
    }
}

如果能帮我渡过难关,我将不胜感激。

您需要了解$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();
}

最可能的问题是$marketinfo不是数组。

CCD_ 2或CCD_ 3 CCD_。