2017-08-08 57 views
-1

如何使用API​​对使用API​​ json的数据进行foreach,这里我提到API数据示例,我使用的代码是我尝试的但它不打印任何内容,也没有错误。更新:下面我更新API数据,以更好地了解哪些是私人数据,以便我不共享API网址。如何使用php foreach API数据

这里是代码:

{ 
    "1": { 
    "ID_PP": [ 
     "1", 
     "2", 
     "3" 
    ], 
    "detail": { 
     "price": 16.5, 
     "tax": null, 
     "shipment": null 
    } 
    }, 
    "2": { 
    "ID_PP": [ 
     "6", 
     "7", 
     "8", 
     "9", 
     "10" 
    ], 
    "detail": { 
    "price": 14, 
    "tax": null, 
    "shipment": null 
    } 
    }, 
    "3": { 
    "ID_PP": [ 
     "13", 
     "14" 
    ], 
    "detail": { 
     "price": 6, 
     "tax": null, 
     "shipment": null 
    } 
    } 
} 

$url = "API URL"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_URL,$url); 
$execute=curl_exec($ch); 
curl_close($ch); 
$return = json_decode($execute, true); 
$i = 0; 
foreach($return['ID_PP'] as $key=>$val) { 
    echo $val[$i]; 
$i++;} 
+0

你对我们一些无效的JSON? ???? – RiggsFolly

+0

如果显示的数据结构是$ return所包含的数据结构 - 它没有顶级关键字“ID_PP”的任何元素。 – CBroe

+0

使用'curl_error'来查看你是否有卷曲错误。请参阅http://php.net/manual/bg/function.curl-error.php。另外的var_dump'$ return',看看'json_decode'成功 – user1915746

回答

0

这将循环在整个对象和输出所需的值

$execute = '{ 
    "1": { 
    "ID_PP": ["1","2","3" ], 
    "detail": { 
     "price": 16.5, 
     "tax": null, 
     "shipment": null 
    } 
    }, 
    "2": { 
    "ID_PP": ["6","7","8","9","10"], 
    "detail": { 
    "price": 14, 
    "tax": null, 
    "shipment": null 
    } 
    }, 
    "3": { 
    "ID_PP": ["13","14"], 
    "detail": { 
     "price": 6, 
     "tax": null, 
     "shipment": null 
    } 
    } 
}'; 

$return = json_decode($execute); 
print_r($return); 

foreach($return as $arrItem){ 
    foreach($arrItem->ID_PP as $key=>$val){ 
     echo $val.','; 
    } 
} 

结果

1,2,3,6,7,8,9,10,13,14, 
+0

看起来像我更换了JSON字符串后,我拿了一个副本进行测试。现在,我使用你的第二个版本,它仍然有效 – RiggsFolly

+0

它的工作原理谢谢:) – mkrahamath

+0

那么你为什么要接受产生像'通知错误答案:未定义指数:ID_PP' – RiggsFolly