2010-03-23 52 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