2011-05-03 207 views
1

我目前有一個報告類,它從我的數據庫中提取大量數據並將其格式化爲要返回的4維數組。這工作正常,但我擔心這不是最好的方式。我應該使用JSON,XML,接口等...PHP多維關聯數組替代

基本上什麼是最好的方式來返回這些數據?

下面是我如何使用多維關聯數組返回數據爲例:

$results[$teacherID][$studentID][$subject][$testID] 

和結構的樣品圖:

Array 
(
[17520] => Array 
    (
     [01356] => Array 
      (
       ["Math"] => Array 
        (
          [0130] => 75.2 
          [0215] => 76.8 
        ) 
       ["Science"] => Array 
        (
          [0130] => 85.2 
          [0215] => 72.2 
          [0308] => 96.3 
          [0320] => 68.4 
        ) 
      ) 
     [01468] => Array 
      (
       ["Math"] => Array 
        (
          [0130] => 23.2 
          [0215] => 54.8 
        ) 
       ["Science"] => Array 
        (
          [0130] => 72.6 
          [0215] => 79.1 
          [0308] => 68.7 
          [0320] => 72.2 
        ) 
      ) 
    ) 

[17522] => Array 
    (
     ect... 

回答

0

它可能會更簡單在需要時用您需要的數據查詢數據庫。如果你正在做循環遍歷數據這樣的事情,那麼從數據庫中獲取信息到數組中似乎是一個非常有效的解決方案。

0

真的是6個,另有6個。要問的大問題不一定是用哪種方法來移動數據,而是期望的結果是什麼?

當我處理大量的數據時,我會返回給用戶,我幾乎總是達到jQuery's Datatables,它們允許我以比我更喜歡的方式進行排序,頁面過濾等操作在合理的時間內。我的數據通過ajax調用通過JSON調用,這使得我不僅可以一次獲取數據,還可以「管道」數據,這樣我就可以在結果前後加載數據,以減少數據庫訪問次數。

但是,有時候網格不是最終的解決方案。也許你試圖以更加自定義的佈局來顯示它,或者只是收集數據以供頁面中的其他元素使用。這肯定會對數組或XML有用,而且我認爲我只是因爲更習慣於數組而習慣數組......這是個人的解決方案。

有時使您的查詢更具體是答案。但是,這也會對性能產生嚴重影響。再一次,由於我們不知道具體情況,因此您需要確定一次抓取的好處與執行多個小型交易的「成本」。

0

JSON文件會稍微短一些,它還有一個額外的優點,即它可以用PHP以外的語言輕鬆解析。 XML會更龐大(如果下載時間是一個問題,它可能不會通過內部網),並且處理開銷更大,但是它可以通過PHP以外的其他語言輕鬆解析。以多種編程語言理解的格式提供數據文件始終是一個好主意,因爲雖然您的當前格式非常容易通過PHP進行解析並且分析處罰最小,但PHP是唯一能理解的語言。如果使用JSON或XML等便攜式格式,那麼未來可能需要一段時間才能使用另一個使用相同數據但以不同語言實現的系統。