2012-10-02 48 views
-2

所以我已經到了我的網站的一個階段,我需要將大量信息打包到一個像對象這樣的單個json數組中,所以爲了做到這一點,我需要打包某個鍵名下的數組信息列表,然後是另一個關鍵名稱下的另一組數據。如何使用PHP創建多維數組並使用jQuery進行訪問?

因此,例如:

$array = array(); 

foreach(action goes here) 
{ 
    $array['data1'] = array('information' => data, 'more_information' => more_data) 
} 

$array['data2'] = array("more data"); 

基本上,這說明了什麼,我試圖做的,我能夠部分地做到這一點,但命名爲新的數據只設置鍵替換每個數據,而不是添加進入foreach循環。

現在,如果這部分不是太混亂,我需要一些幫助。除此之外,一旦解決了這個問題,我需要能夠在我的jQuery響應中使用數據,所以我需要能夠訪問每一組數據,如:json.data1 [i ++] .data,這將理想地返回「more_information」。

回答

0

你需要在循環遞增數字,並可以作爲一個JSON對象的結果...

$array = array(); 
$i = 0; 

foreach(action goes here) 
{ 
    $array['data'.$i] = array('information' => data, 'more_information' => more_data) 
    $i++; 
} 

$array['data2'] = array("more data"); 

$data = json_encode($array); 

然後在PHP中您可以設置一個js VAR像這樣:

<script type="text/javascript"> 
var data = <?php echo $data; ?>; 
</script> 

然後可以在js輕鬆訪問:

alert(data.data1.information); 

如果我正確理解你的問題,你期望得到th是對象作爲對某事的迴應?就像一個jQuery .ajax調用?

http://api.jquery.com/jQuery.ajax/

此鏈接說明了如何漂亮明確使用它。你會希望確保指定dataType = "json",然後將你的數據在成功的呼叫處理:

$.ajax({ 
    url: 'some url string', 
    type: "GET", 
    dataType: "json", 
    success: function(data) 
    { 
     $.each(data, function(i, v){ 
      console.log(data[i]); 
     }); 
    }, 
    error: function() 
    { 
     //error handling 
    } 
}); 

這是未經驗證的,但概念是什麼,我想傳達。你基本上使你的多維數組在php和json_encode它。這些方法都可以讓你解析json。

+0

感謝您幫助我解決這個問題,但我認爲我的問題的關鍵部分不夠清楚(或者可能是),但我會盡力解釋它以確保。我想要有三個子數組,它們的鍵類似於:「add」,「remove」,「update」,那麼每個數組的值將是一個數組數組,這樣我就可以添加某些數據返回到javascript,或者刪除傳回的數據,或者更新傳回的數據,具體取決於用戶對文件所做的操作。那麼在ajax的成功中,我需要能夠使用$ .each()... –

+0

每個子數組數據,例如:$ .each(data.add),$ .each(data .remove),$ .each(data.update),然後它會遍歷這些鍵的數組。 –

+1

你完全控制你的json編碼。沒有什麼說你不能對數組進行編碼('add'=> array(),'remove'=> array(),'update'=> array())並且像你在這裏提到的那樣訪問它。你嘗試了什麼,你得到了什麼結果? –