使用PHP回显print_r的结果

时间:2013-02-01 05:20:39

标签: php arrays foreach echo google-places-api

有人可以教我如何回应这个PHP数组的结果吗?抱歉,我只是一个初学者,所以我不知道如何通过print_r回应结果。提前谢谢。

这是测试结果。

Array
(
[html_attributions] => Array
    (
    )

[result] => Array
    (
        [address_components] => Array
            (
                [0] => Array
                    (
                        [long_name] => 101
                        [short_name] => 101
                        [types] => Array
                            (
                                [0] => street_number
                            )

                    )

                [1] => Array
                    (
                        [long_name] => South Capitol Boulevard
                        [short_name] => South Capitol Boulevard
                        [types] => Array
                            (
                                [0] => route
                            )

                    )

                [2] => Array
                    (
                        [long_name] => Boise
                        [short_name] => Boise
                        [types] => Array
                            (
                                [0] => locality
                                [1] => political
                            )

                    )

                [3] => Array
                    (
                        [long_name] => ID
                        [short_name] => ID
                        [types] => Array
                            (
                                [0] => administrative_area_level_1
                                [1] => political
                            )

                    )

                [4] => Array
                    (
                        [long_name] => US
                        [short_name] => US
                        [types] => Array
                            (
                                [0] => country
                                [1] => political
                            )

                    )

                [5] => Array
                    (
                        [long_name] => 83702
                        [short_name] => 83702
                        [types] => Array
                            (
                                [0] => postal_code
                            )

                    )

            )

        [formatted_address] => 101 South Capitol Boulevard #102, Boise, ID, United States
        [formatted_phone_number] => (208) 383-7990
        [geometry] => Array
            (
                [location] => Array
                    (
                        [lat] => 43.614959
                        [lng] => -116.20324
                    )

            )

        [icon] => http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png
        [id] => 91bf0748c063de6e9bf44c727ad51f4ef85d33ae
        [international_phone_number] => +1 208-383-7990
        [name] => U.S. Bank
        [photos] => Array
            (
                [0] => Array
                    (
                        [height] => 960
                        [html_attributions] => Array
                            (
                            )

                        [photo_reference] => CpQBiQAAAJ5QC7jSXHz6OUGp1FPaA55yn5BE9fZ6fxOzT1s4FFIIsvGvAecrFYK2eZZyrqI9nB8pRAdlwoJiSZkdxk-JtJawfmwCCr_fChdG-0T-iDyRnTlxRf5IAbsWb4r_AxX-B7uOlJCdoqzlqhdGmrA66ZDOKQLl-b_wabnfWFOEQFVCoUdJm4DuYWqva1kxH1ZWrRIQkc0ouj-W6VPrPWHm6V9jahoU-fIZnYc1jGMnhHKjgPdyDFR5aKM
                        [width] => 960
                    )

            )

        [reference] => CnRmAAAAMALLK7dmAZaKc0ESh4shESTdKRgs4a003f2Cm_ZQeCicE0kcbS54t5lZeQPgLQKmzH6PlzQRE_0TeHOw-1y6M_5esCUsMFmWbO0jDRSZ4ZTnXClSnof70T88tyIT7GXD_zXaQ13jSTgz_IfvSE6J4xIQxVgnzxjMyK2H5jrA9LyrTRoUueDADLmJEnqYUDYcS-Td_0VfVwQ
        [reviews] => Array
            (
                [0] => Array
                    (
                        [aspects] => Array
                            (
                                [0] => Array
                                    (
                                        [rating] => 0
                                        [type] => overall
                                    )

                            )

                        [author_name] => A Google User
                        [text] => Not helpful. Pain in the butt to work with. Tried to close my account multiple times and they'd just talk me in circles until I ran out of time and had to head to work or the store etc.
                        [time] => 1305826914
                    )

            )

        [types] => Array
            (
                [0] => atm
                [1] => bank
                [2] => finance
                [3] => establishment
            )

        [url] => https://plus.google.com/109932745180214578046/about?hl=en
        [utc_offset] => -420
        [vicinity] => 101 South Capitol Boulevard #102, Boise
        [website] => http://usbank.com/
        [address_fixed] => Array
            (
                [street_number] => 101
                [address_street_name] => South Capitol Boulevard
                [address_city] => Boise
                [address_state] => ID
                [address_postal_code] => 83702
            )

    )

[status] => OK
[errors] => Array
    (
    )

这是我的PHP脚本。

<?
require_once('googlePlaces.php');
//Searching a new place
$gplaces = New GooglePlaces;
$gplaces->SetLocation("43.612631,-116.211076");
$gplaces->SetRadius(50000);
$gplaces->SetTypes("bank");
$results = $gplaces->Search();


if($results[status] = "OK")
{
    $num_of_results = count($results[results]);

    $result_counter = 1;
    foreach($results[results] as $key=>$current_result)
        {
            if($result_counter >= 5)
                {
                    continue;   
                }

            $gplaces->SetReference($current_result[reference]);
            $details_result = $gplaces->Details();
            echo "<pre>";
            print_r($details_result);
            echo "</pre>";
            echo "<hr>";

            $result_counter++;
        }
}
?>

3 个答案:

答案 0 :(得分:2)

最简单的形式:

echo '<pre>', htmlspecialchars(print_r($details_result, true)), '</pre>';

这会照顾必要的HTML转义。如果您有任何二进制数据并且您在页面上使用utf8编码,则需要clean the string甚至更多。

答案 1 :(得分:1)

echo $details_result['result']['address_components'][0]['long_name'] ;

OR

foreach($details_result['result']['address_components'] as $res){
   echo $res['long_name'];
   echo "<br>";
}

答案 2 :(得分:0)

echo '<pre>' . print_r( $details, true ) . '</pre>';