从多个答案json中获取答案

  • 本文关键字:答案 获取 json php json
  • 更新时间 :
  • 英文 :


这是json(它可以是1到10个响应):

{"d":[{"__type":"OperatorDataContract:http://psgi.pts.se/PTS_Number_Service","Name":"TeliaSonera Sverige AB","Number":"XXXX-XXXXX"},
{"__type":"OperatorDataContract:http://psgi.pts.se/PTS_Number_Service","Name":"TeliaSonera Sverige AB","Number":"XXXX-XXXXX"},
{"__type":"OperatorDataContract:http://psgi.pts.se/PTS_Number_Service","Name":"Tele2 Sverige AB","Number":"XXXX-XXXXX"}]}

当我有一个响应时,我有这个:

$str = file_get_contents($apilink);
$data = json_decode($str, true);
$operator = $data['d']['Name'];

然而,如果有多个答案,就像我所显示的那样,它将只是空白(可能是因为它找到了多个"Name")。你是怎么从回复中得到所有名字的?

您将得到如下多个响应:

$data['d'][0]['Name'];
$data['d'][1]['Name'];
$data['d'][2]['Name'];

试试这个:

if (count($data['d']) > 1) {
   foreach($data['d'] as $result){
      $operator[] = $result['Name'];
   }
}

这里循环遍历数组,在一个名为$operator的数组中获取多个名称。

您需要的是foreach循环,这里是将在json响应中吐出所有名称的示例。

$json = '{"d":[{"__type":"OperatorDataContract:http://psgi.pts.se/PTS_Number_Service","Name":"TeliaSonera Sverige AB","Number":"XXXX-XXXXX"},
{"__type":"OperatorDataContract:http://psgi.pts.se/PTS_Number_Service","Name":"TeliaSonera Sverige AB","Number":"XXXX-XXXXX"},
{"__type":"OperatorDataContract:http://psgi.pts.se/PTS_Number_Service","Name":"Tele2 Sverige AB","Number":"XXXX-XXXXX"}]}';
$data = json_decode($json, true);
$operator = $data['d'];
foreach($operator as $value)
{
    echo $value['Name'].'<br>';
}

希望以上是有意义的,我也建议你阅读更多关于foreach的知识,这样你就可以清楚地了解如何以迭代的方式处理数据

最新更新