我试图使用curl来检索json数据。如果我回应结果,如下面的情况
$json = json_decode($result, true);
echo '<pre>' . print_r($json, true) . '</pre>';
json结果如下所示
Array
(
[items] => Array
(
[0] => Array
(
[id] => 100
[food] => Rice
[created] => 2017-07-05T04:02:58.429Z
)
[1] => Array
(
[id] => 112
[food] => Beans
[created] => 2017-07-05T03:58:46.269Z
)
[2] => Array
(
[id] => 115
[food] => Potato
[created] => 2017-07-05T03:57:50.038Z
)
[3] => Array
(
[id] => 120
[food] => Yam
[created] => 2017-07-05T03:55:21.559Z
)
)
)
下面是我用来打印json结果的代码
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "myapi.com",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
//CURLOPT_POSTFIELDS => "$data",
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"content-type: application/json; charset=utf-8"
),
));
$result = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$json = json_decode($result, true);
echo '<pre>' . print_r($json, true) . '</pre>';
foreach ($json as $value) {
echo $value['items']['id'];
echo $value['items']['food'];
}
现在我只是尝试使用下面的代码获取Id和食物的值,但它没有显示任何内容
foreach ($json as $value) {
echo $value['items']['id'];
echo $value['items']['food'];
}
任何人都可以通过获取商品ID和食品的价值来帮助我解决这个问题。感谢
答案 0 :(得分:0)
你的对象层次结构有点偏差。 $value['items']
是一个数组,因此您需要$value['items'][0]['id']
等等。
答案 1 :(得分:0)
让你的foreach循环有点偏离。 $ json是一个数组,有一个名为items
的属性 - 该属性是另一个数组,它实际上是你想要的THIS数组,包含你的id和食物的数组是什么
foreach ($json['items'] as $value) {echo $value['id'];echo $value['food'];}