JSON 解析 php 问题


JSON parsing php issue

我有这个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将仅包含random2random3

results是一个

数组,所以你得到了数组中的第一个:$json["results"][0]

如果要迭代所有值,它应该是这样的:

foreach($json["results"] as $data) {
   echo json_encode($data['response']);
}
foreach($json["results"] as $data) {    echo json_encode($data['response']);}