如何获取信息的价值?

时间:2019-08-05 15:03:54

标签: php distance google-distancematrix-api

我只想获取公里数以将其保存到新变量中。

我还尝试使用索引访问数组。

我的代码:

/**
 * @Route("/routesetting", name="api_routeset_set", methods={"GET"})
 */
public function getRouteAction(Request $request) {
    $distanceMatrix = new GoogleDistanceMatrix('AIzaSyBdAHFe4MsbIr417NlPioNhYW7as-adBa8');
    $distance = $distanceMatrix
        ->addOrigin('Van Bronckhorststraat 94, 5961SM Horst, The Netherlands')
        ->addDestination('Maistraße 10, 80337 München, Deutschland')
        ->setMode(GoogleDistanceMatrix::MODE_DRIVING)
        ->setLanguage('en-EN')
        ->setUnits(GoogleDistanceMatrix::UNITS_METRIC)
        ->setAvoid(GoogleDistanceMatrix::AVOID_FERRIES)
        ->sendRequest();


    return $this->json([
        'message' => $distance
    ]);
}

结果:

{
    "message": {
        "status": "OK",
        "responseObject": [],
        "originAddresses": [
            []
        ],
        "destinationAddresses": [
            []
        ],
        "rows": [
            {
                "elements": [
                    {
                        "status": "OK",
                        "duration": {
                            "text": "6 hours 48 mins",
                            "value": 24461
                        },
                        "distance": {
                            "text": "695 km",
                            "value": 695380
                        }
                    }
                ]
            }
        ]
    }
}

预期结果:

  

695380

1 个答案:

答案 0 :(得分:0)

$distance似乎是一个PHP数组(我从未使用过此Google API)。

因此,在调用return $this->json(['message' => $distance]);之前,您应该只从$distance变量中获取所需的值。

似乎是$distance['rows']['elements']['distance']['value']

因此,返回$this->json(['message' => $distance['rows']['elements']['distance']['value']]);似乎是您的把戏。 ;)

请注意,我尚未在此处进行任何内容验证(isset())。