我确信这是一个完整的noob问题,但我正在尝试迭代来自stripe.com的api响应,并且我能够在php中回声出类似于以下的数组:
{ "count": 3,
"data": [ { "amount": 29900,
"object": "plan",
"interval": "month",
"livemode": false,
"currency": "usd",
"name": "vb Group unlimited",
"id": "vb-std-group2" },
{ "amount": 9900,
"object": "plan",
"interval": "year",
"livemode": false,
"currency": "usd",
"name": "vb Group to 20",
"id": "vb-std-group" },
{ "amount": 1900,
"object": "plan",
"interval": "year",
"livemode": false,
"currency": "usd",
"name": "vb-Individual",
"id": "vb-std-individual" }
]
}
我想做的是回显"数据"数组信息。感谢您的真知灼见。
您拥有的字符串是JSON编码的。使用json_decode
将其解码为PHP对象,比如$obj
。那么,$obj['data']
就是一个数组。使用foreach循环对其进行迭代。
foreach($obj['data'] as $key=>$object)
foreach($object as $key=>$value)
echo $key . " : " . $value;
试试这样的东西:
$reponseData = $response['data'];
foreach($reponseData as $eachDataObj)
{
foreach($eachDataObj as $key => $val)
{
echo $key . " => ".$val;
}
}
这假设$response已经是一个对象,如果它实际上只是TEXT,那么您必须使用
$response = json_decode($response);
看看这个,它会帮助你
$myjson = '{ "count": 3,
"data": [ { "amount": 29900,
"object": "plan",
"interval": "month",
"livemode": false,
"currency": "usd",
"name": "vb Group unlimited",
"id": "vb-std-group2" },
{ "amount": 9900,
"object": "plan",
"interval": "year",
"livemode": false,
"currency": "usd",
"name": "vb Group to 20",
"id": "vb-std-group" },
{ "amount": 1900,
"object": "plan",
"interval": "year",
"livemode": false,
"currency": "usd",
"name": "vb-Individual",
"id": "vb-std-individual" }
]
}';
$data =json_decode($myjson);
$arrData = get_object_vars($data);
foreach($arrData as $key=>$value){
$arrData[$key] = $value;
}
//print_r($arrData['data']);
foreach($arrData['data'] as $ke=>$va):
foreach($va as $k=>$v):
echo $k."-".$v."<br/>";
endforeach;
endforeach;