微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问嵌套数据 PHP

如何解决访问嵌套数据 PHP

我确定我一定遗漏了一些明显的东西,但我正在尝试从以下数据中访问一些场地和类别信息并使用 PHP 检索它。

当我在 foreach 语句中的 ['response'] 旁边包含 ['venues'] 时,我可以轻松访问名称、纬度和经度,没有问题。 但是,我还需要从 ['categories'] 访问一些信息,所以我尝试将 ['venues'] 从 foreach 语句移到访问数组该部分的每一行上。 这会导致一个错误,即 ['venues'] 和 ['categories'] 的每个实例都是一个未识别索引

我错过了什么?

我正在使用的数据:

data: {
    Meta: {
        code: 200,requestId: "61044a3db649b50f959a1dd9"
    },response: {
        venues: [
            {
                id: "4ac518cdf964a520e6a520e3",name: "National gallery",location: {
                    address: "Trafalgar Sq",lat: 51.50887601013219,lng: -0.1284778118133545,labeledLatLngs: [
                        {
                            label: "display",lng: -0.1284778118133545
                        }
                    ],postalCode: "WC2N 5DN",cc: "GB",city: "London",state: "Greater London",country: "United Kingdom",formattedAddress: [
                        "Trafalgar Sq","London","Greater London","WC2N 5DN","United Kingdom"
                    ]
                },categories: [
                    {
                        id: "4bf58dd8d48988d18f941735",name: "Art Museum",pluralName: "Art Museums",shortName: "Art Museum",icon: {
                            prefix: "https://ss3.4sqi.net/img/categories_v2/arts_entertainment/museum_art_",suffix: ".png"
                        },primary: true
                    }
                ],etc

我的 PHP

?PHP

$url = "https://api.foursquare.com/v2/venues/search?client_id=foo&client_secret=bar&v=20210703&near=" . $_REQUEST['city'] . "," . $_REQUEST['country'] . "&categoryId=" . $_REQUEST['category'];

$curl = curl_init();

$ch = curl_init();
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_URL,$url);
   
    $result=curl_exec($ch);

    curl_close($ch);

    $decode = json_decode($result,true);

    $countryData = [];

    foreach($decode['response'] as $result){
        $countryinfo = [];
        $countryinfo['name'] = $result['venues']['name'];
        $countryinfo['lat'] = $result['venues']['location']['lat'];
        $countryinfo['lng'] = $result['venues']['location']['lng'];
        $countryinfo['icon'] = $result['categories']['icon']['prefix'];
        $countryinfo['iconSuffix'] = $result['categories']['icon']['suffix'];

         array_push($countryData,$countryinfo);
    }

 
    $output['status']['code'] = "200";
    $output['status']['name'] = "ok";
    $output['status']['description'] = "success";
    $output['data'] = $countryData;
    
    header('Content-Type: application/json; charset=UTF-8');

    echo json_encode($output); 


?> 


如果我在 foreach 语句中包含场地,我会得到所需的名称、纬度和 lng 结果 - 所以我不知道为什么将它取出并放在访问场地数组的每一行上不起作用?

PHP

foreach($decode['response']['venues'] as $result){
        $countryinfo = [];
        $countryinfo['name'] = $result['name'];
        $countryinfo['lat'] = $result['location']['lat'];
        $countryinfo['lng'] = $result['location']['lng'];
        //$countryinfo['icon'] = $result['categories']['icon']['prefix'];
        //$countryinfo['iconSuffix'] = $result['categories']['icon']['suffix'];

         array_push($countryData,$countryinfo);
    }

返回:

{
status: {
code: "200",name: "ok",description: "success"
},data: [
{
name: "National gallery",lng: -0.1284778118133545
},{
name: "Elizabeth Tower (Big Ben) (Big Ben (Elizabeth Tower))",lat: 51.50070194764357,lng: -0.12458056211471556
},``` etc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。