2016-07-23 81 views
0

JSON對象的元素我有以下JSON對象:輸入與PHP

$dati = array(
    "data" => array(
     'address_complete'=>$data->results[0]->formatted_address, 
     'address_square'=>$data->results[0]->address_components[1]->long_name, 
     'location'=>$data->results[0]->address_components[2]->long_name, 
     'postal_code'=>$data->results[0]->address_components[7]->long_name, 
     'data_ora'=>$tmp_date 
    ), 
    "str" => array ("n1"=>"fabio", 
        "n2"=>"marcolino", 
        "n3"=>"lauretta") 
); 
$p = json_encode($dati); 
echo $p; 

我怎樣才能進入n1元素展現fabio作爲輸出?

$p.str.n1不起作用。我怎樣才能做到這一點?

此外,如何使用for循環顯示fabio,marcolino,lauretta

for ($i=1; $i<=3; $i++) { 
    $dati = array(
     "data" => array(
     'address_complete'=>$data->results[0]->formatted_address, 
     'address_square'=>$data->results[0]->address_components[1]->long_name, 
     'location'=>$data->results[0]->address_components[2]->long_name, 
     'postal_code'=>$data->results[0]->address_components[7]->long_name, 
     'data_ora'=>$tmp_date 
    ), 
     "str" => array (
     "n".$i=>"fabio", 
     "n".$i=>"marcolino", 
     "n".$i=>"lauretta") 
    ); 
    //$p = json_encode($dati); 
    echo $dati[str]["n".$i]; 
} 

我該如何解決這個問題?


最後我有一個問題:如果"str" => array ("n1"=>"fabio", "n2"=>"marcolino", "n3"=>"lauretta")被保存在數據庫中,我想從它那裏得到他們來說,是正確的通過以下方式來寫?

"str" => array("n".$i=>"Ti sei incrociato con ".$array_db[username]), 

,並將其與AJAX調用:

... success:function(msg){ 
     if(msg){ 
      $("#location").html(Object.keys(msg.str).map(x => msg.str[x]).join(", ")); 
     }else{ 
      $("#location").html('Not Available'); 
     } 
+0

使用'$ dati'而不是:'$ DATI [ 「STR」] [ 「N1」]'。一旦編碼完成,PHP會將其視爲簡單的字符串。 [閱讀更多](https://stackoverflow.com/documentation/php/617/json#t=201607231142558164482)關於JSON –

+0

謝謝,我有另一個問題,所以我編輯我的問題上面。 @RuslanBes – Fabio97

+0

編輯了代碼格式。如何使用反引號從代碼塊引用變量總是好的 - >' – Armstrongest

回答

1

而且我怎樣才能顯示 「法比奧」, 「marcolino」, 「勞雷塔」 使用循環 呢?

<?php 

$dati = array(
    "data" => array(
     'address_complete'=>$data->results[0]->formatted_address, 
     'address_square'=>$data->results[0]->address_components[1]->long_name, 
     'location'=>$data->results[0]->address_components[2]->long_name, 
     'postal_code'=>$data->results[0]->address_components[7]->long_name, 
     'data_ora'=>$tmp_date 
    ), 
    "str" => array ("n1"=>"fabio", 
        "n2"=>"marcolino", 
        "n3"=>"lauretta") 
); 
?> 

<script type="text/javascript"> 
<?="var p = " . json_encode($dati) ?> 

// print individual elements 
for (i in p.str) { 
    console.log(p.str[i]) 
} 

// print together 
console.log(Object.keys(p.str).map(x => p.str[x]).join(", ")) 

</script> 
+0

如何編寫'echo implode(',',$ dati [「str」]);'在編碼之後使用Jquery? @RuslanBes – Fabio97

+0

@ Fabio97更新了答案 –

+0

我有一個最新的問題,所以我更新了上面的問題。 @RuslanBes – Fabio97