Php 合并2个地点请求以获取邮政编码

Php 合并2个地点请求以获取邮政编码,php,arrays,json,google-places-api,Php,Arrays,Json,Google Places Api,我想将两个地方的api调用合并在一个地方,以获得关于清单的更多信息 例如: 我的第一个脚本请求提供了API中的名称和地址。但是,PlaceSearchAPI没有提供我需要的邮政编码或其他信息 我当前的脚本显示了以下内容: name;adress,lnt,lng,place_id 但我需要更多的信息为每个上市,如邮政编码,其中没有包括在这里 如何为每个地点id包含第二个API调用并显示邮政编码 $apikey='KEY'; $url=”https://maps.googleapis.com/m

我想将两个地方的api调用合并在一个地方,以获得关于清单的更多信息

例如:

我的第一个脚本请求提供了API中的名称和地址。但是,PlaceSearchAPI没有提供我需要的邮政编码或其他信息

我当前的脚本显示了以下内容:

name;adress,lnt,lng,place_id
但我需要更多的信息为每个上市,如邮政编码,其中没有包括在这里

如何为每个地点id包含第二个API调用并显示邮政编码


$apikey='KEY';
$url=”https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.374,10.1495&rankby=distance&name=keyword&language=de&key=$apikey”;
$json=文件获取内容($url);
$obj=json_decode($json,true);

对于($i=0;$i)在注释之后,我提出了这个想法。请注意,我自己没有要测试的API键,这个想法就在那里。您可能需要根据第二个查询(循环中的查询)的
json_decode
函数的结果调整对
$obj2
的引用



想法是根据两次查询的结果从
$obj1
$obj2
中获得所需的信息。

在评论之后,我提出了这个想法。请注意,我自己没有要测试的API键,想法就在那里。您可能必须根据查询结果调整对
$obj2
的引用
json\u decode
函数,用于第二个查询(循环中的查询)



想法是根据两次查询的结果,从
$obj1
$obj2
中获得所需信息。

阅读以下内容:。它显示您可以使用JSON响应中的
地址组件
字段来查找邮政编码。该链接显示了当您知道地址id时如何构建查询URL,是的,我知道这个页面,我知道如何获得正确的响应。我的问题是如何将这些请求放在一起,所以我得到了所需的格式。啊,对不起。好的,那么你有两个调用,因此有两个JSON结果。解析这两个。让我们假设
$obj1
$obj2
。从
$obj1
获取一些信息,从
$obj2
获取其他信息玷污你的位置。每个位置都可以分配一个数组来存储它的信息。如果你在问题中发布样本JSON响应,我们可以告诉你如何进行。仅供参考:不要在注释中发布代码,格式会丢失。改为编辑问题。你不能在一个请求中完成。第一个请求提供位置id,第二个请求提供详细信息位置id的ls。两个请求,两个结果,组合在您的代码中。嘿,非常感谢您的帮助,我更新了第一篇帖子,希望您能理解…再次为糟糕的英语感到抱歉…我知道我必须将两者结合在一起,才能得到结果,但我不知道如何:)再次感谢,伙计:)阅读此:。它显示您可以使用JSON响应中的
address\u components
字段来查找邮政编码。该链接向您展示了当您知道place_id时如何构建查询URL。嘿,是的,我知道这个页面,我知道如何获得正确的响应。我的问题是如何把这些请求放在一起,所以我得到了我需要的格式。啊,对不起。好的,那么您有2个调用,因此有2个JSON结果。解析两者。假设
$obj1
$obj2
。从
$obj1
获取一些信息,从
$obj2
获取其他信息以玷污您的位置。每个地方都可以分配一个数组来存储信息。如果您在问题中发布示例JSON响应,我们可以向您展示如何。仅供参考:请勿在注释中发布代码,格式已丢失。改为编辑问题。您不能在一个请求中完成此操作。第一个提供了地点id,第二个提供了地点id的详细信息。两个请求,两个结果,组合在你的代码中。嘿,非常感谢你的帮助,我已经更新了第一篇文章,希望你能理解。。。再次为糟糕的英语道歉。。。我知道我必须将两者结合起来,才能得到结果,但我不知道如何:)再次感谢,伙计:)嘿,我觉得这看起来很棒,喝杯咖啡后再试试:)但是看起来不错。。。同时,考虑到你的答案,我发现这可能是有效的:但我会先试试你的例子。。。谢谢,是的,您可以将阵列合并在一起,然后从单个阵列获取所有信息。这两个都管用。嘿,我觉得这个看起来很棒。喝杯咖啡后我会试试:)但是是的,看起来不错。。。同时,考虑到你的答案,我发现这可能是有效的:但我会先试试你的例子。。。谢谢,是的,您可以将阵列合并在一起,然后从单个阵列获取所有信息。两者都有效。
https://maps.googleapis.com/maps/api/place/details/json?placeid=$place_id=name,rating,formatted_phone_number&key=YOUR_API_KEY
Name;Adress;Postcode;LAT;LNG;
<?php

$apikey = 'KEY';

$url1 = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.374,10.1495&rankby=distance&name=keyword&language=de&key=$apikey";
$json1 = file_get_contents($url1);
$obj1 = json_decode($json1, true);

for( $i = 0; $i < count($obj1['results']); $i++) 
{
    $place_id = $obj1['results'][$i]['place_id'];

    $url2 = "https://maps.googleapis.com/maps/api/place/details/output?json&key=" .$apikey . "&placeid=" . $place_id . "&fields=address_component"
    $json2 = file_get_contents($url2);
    $obj2 = json_decode($json2, true);

    echo "" . $obj1['results'][$i]['name'] . ";" . $obj1['results'][$i]['vicinity'] . ";" . $obj1['results'][$i]['geometry']['location']['lat'] . ";" . $obj1['results'][$i]['geometry']['location']['lng'] . ";" . $obj1['results'][$i]['place_id'] . $obj2['result']['address_components']['postal_code'] . "<br>";
};

?>