我有这个json响应
{"success":true,"results":[{"response":["random1"],"id":"6566","Limit":1},{"response":["random2"],"id":"6563","Limit":1},{"response":["random3"],"id":"6568","Limit":1}]}
我所需要的只是从响应中提取 random1,random2,random,3,因此最终结果将是:
- 随机1
- 随机2
- 随机3
我有这个脚本
$jsonData = file_get_contents("json");
$json = json_decode($jsonData,true);
foreach($json["results"][0]["response"] as $data) {
{
echo json_encode($data);
}
}
但这只会提取
- 随机1
如果我更改[0]
[1]
将提取随机2并[2]
随机3如何获得随机1,随机2,随机3,一次响应?所以最后的回声将是:
- 随机1
- 随机2
- 随机3
提前感谢您,任何帮助将不胜感激!
循环
$json['result']
你所做的只是将第一个索引0
random1
作为其response
值
$json = '{"success":true,"results":[{"response":["random1"],"id":"6566","Limit":1},{"response":["random2"],"id":"6563","Limit":1},{"response":["random3"],"id":"6568","Limit":1}]}';
$json = json_decode($json,true);
foreach($json["results"] as $data) {
echo $data['response'][0]."'n";
}
在这里尝试一下
更新
如果你想过滤,比如说random1
那么这样做
$json = json_decode($json,true);
$filter = array("random1"); //You can add items to filter
$result = array();
foreach($json["results"] as $data) {
if(!in_array($data['response'][0],$filter))
$result[] = $data;
}
print_r($result);
$result
将仅包含random2
和random3
results
是一个数组,所以你得到了数组中的第一个:$json["results"][0]
。
如果要迭代所有值,它应该是这样的:
foreach($json["results"] as $data) {
echo json_encode($data['response']);
}
foreach($json["results"] as $data) { echo json_encode($data['response']);}