2010-03-23 84 views
0

我需要這樣PHP多維數組,存儲器管理

array(){ 
    [0] => array(){ 
      [0] => array(){ 
         // this array will have 'n' values(n is large, like 2000) 
         } 
      [1] => array(){ 
         // this array will have 'n' values(n is large, like 2000) 
         } 
        } 
    . 
    . 
    . 
[n] => ............ 
} 

Ñ陣列將分別具有2元件陣列,其中每個元素具有n值的陣列的結構。

我用$list[$m][0][$n]$list[$m][1][$n]內2 for循環,其中$m,$n0...2000

改變這種跨越允許的內存大小..我可以改變php.ini中的大小,但我想我的優化內存使用和不改變限制。

會使用對象的幫助嗎?

請提供一些示例代碼來理解。謝謝。

+0

你在使用什麼數據?你從哪裏得到它,是否需要顯示? – 2010-03-23 19:16:00

+0

從輸入文件中獲取數據..我忘記提及的一件事是所有的值都是整數..會幫助嗎? – ksskr 2010-03-23 19:22:12

回答

5

使用對象很可能不會幫助(它可能更糟)

你需要做的,在的情況下,像這樣的,是重新思考:

  • 無論您的設計:必須有另一種方式來實現你想要
    • 什麼可能,使用另一種算法?
    • 或在內存中存儲某些「臨時數據」?在一個SQLite數據庫中,例如?
  • ,否則你會使用你的腳本語言
    • PHP並不總是對工作的最佳工具。
3

假設數據的淨重超過了內存限制,我看不出有什麼對象可以提供幫助。爲了數據存儲的目的,它們實際上只是一種不同的表示法。也許有一種方法可以節省每一個字節 - 我不知道,但如果有差異,我的賭注是對象更昂貴。

但我認爲一般問題是你想要處理大量數據?將它的一部分存儲到磁盤或數據庫並將它的一部分存儲在內存中是否可行?

+0

我試圖在php中實現穩定的結婚算法,我在所有的男人和女人在一個單一的列表.. – ksskr 2010-03-23 19:17:38

+0

我同意...如果它來自一個數據庫,那麼你應該是分頁極限和偏移量 - 如果它來自文件然後某種行/塊解析將被要求。 – prodigitalson 2010-03-23 19:21:48

+1

@srk我不知道這個算法,也許你想在你的問題中詳細說明? – 2010-03-23 19:22:14