我有这个 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
如果我更改 [1]
中的 [0]
将提取 random2 和 [2]
random3
如何立即获得 random1,random2,random3, 响应?所以最终的 echo 将是:
- 随机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";
}
尝试一下 here
更新
如果你想过滤,比如说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
关于php - php JSON解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35647129/