2010-03-23 4 views
0

i는 각각의 각 요소는 N 개의 값들의 배열을 갖는 2 소자 어레이를 가질 것이다이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] => ............ 
} 

N 어레이와 같은 구조가 필요하다.

나는 $m,$n0...2000

다를 루프 (2)의 내부에 $list[$m][0][$n]$list[$m][1][$n] 사용이 허용 된 메모리 크기는 .. 내가 php.ini 파일의 크기를 변경할 수 있습니다,하지만 난 내 메모리 사용을 최적화 할되지 교차 한계를 변경하십시오.

개체를 사용하면 도움이 될까요?

이해할 수 있도록 몇 가지 샘플 코드를 제공해주십시오. 고맙습니다.

+0

무엇을위한 데이터를 사용하고 있습니까? 어디에서 가져 왔고 표시해야합니까? –

+0

입력 파일에서 데이터를 가져 오는 중 .. 한 가지는 내가 언급 한 것을 잊어 버렸습니다. 모든 값은 정수입니다. 도움이 될만합니까 ?? – ksskr

답변

5

개체를 사용하면 거의 도움이되지 않습니다 (심지어 악화 될 수도 있습니다).

당신이 이곳과 같은 경우에,해야 할 일은,되어 다시 생각한다 :

  • 를 하나 설계 : 당신이 가능
    • 를 원하는 것을 달성하기 위해 다른 방법이 있어야합니다, 다른 알고리즘을 사용하고 있습니까?
    • 또는 "임시 데이터"을 메모리 이외의 위치에 저장 하시겠습니까? 예를 들어, SQLite 데이터베이스에서?
  • 은 또는 당신이 당신의 스크립트 사용합니다 언어는
    • PHP는 항상 작업에 가장 적합한 도구가 아닙니다.
3

데이터의 순중량이 메모리 제한을 초과한다고 가정하면 개체가 어떻게 도움이되는지 알 수 없습니다. 데이터 저장의 목적을 위해서, 그것들은 다른 형식의 표기법입니다. 어쩌면 한 가지 방법으로 다른 부분에 비해 바이트 당 절약 할 수 있습니다. 모르겠지만 차이가 있다면 내 물건이 더 비쌉니다.

하지만 일반적인 질문은 당신이 그 많은 데이터로 무엇을하려 하는가라고 생각합니다. 디스크의 일부를 디스크 나 데이터베이스에 저장하고 일부만 메모리에 저장하는 것이 가능할 수 있습니까?

+0

나는 PHP에서 안정적인 결혼 알고리즘을 구현하려고하는데, 나는 하나의리스트에 모든 남자와 여자가있다. – ksskr

+0

나는 동의한다 ... db로부터 온다면 한계와 오프셋으로 페이징되어야한다. 파일에서 오면 라인/블록 파싱이 필요합니다. – prodigitalson

+1

@srk 나는 그 알고리즘을 모른다. 어쩌면 궁금한 점이 있겠는가? –