0

我正在使用 google api 进行一些地理编码,并且想知道如何转换返回的 simplexml 对象?我尝试了以下方法,但它没有转换子对象..即..我想要一个多维数组。

$url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$adr."
&sensor=false";

$result = simplexml_load_file($url);

$result = (array) $result;
4

3 回答 3

1

您可以发出 JSON 请求而不是 XML;推荐;除非您的应用程序需要它。然后使用:

json_decode( $result, true );

http://us2.php.net/manual/en/function.json-decode.php

于 2012-08-07T22:50:03.310 回答
0

我发现这个函数对于递归地将 Object 转换为 Array 非常有用:

http://forrst.com/posts/PHP_Recursive_Object_to_Array_good_for_handling-0ka

改编自上面的网站,在类之外使用它:

function object_to_array($obj) {
        $arrObj = is_object($obj) ? get_object_vars($obj) : $obj;
        foreach ($arrObj as $key => $val) {
                $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
                $arr[$key] = $val;
        }
        return $arr;
}
于 2013-11-20T15:57:06.817 回答
-1

SimpleXMLElement对象转为 json 并将 json 字符串再次解码为关联数组:

$array = json_decode(json_encode($result), 1);

简单的转换为数组并没有更深入,这就是使用json_encodeand技巧的原因json_decode

于 2012-08-07T22:49:53.893 回答