многомерные массивы php, управление памятью - PullRequest
0 голосов
/ 23 марта 2010

мне нужна такая структура

    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 массивов каждый будет иметь массив из 2 элементов, где каждый элемент имеет массив из n значений.

Я использовал $list[$m][0][$n] и $list[$m][1][$n] внутри 2 для циклов, где $m,$n отличается от 0...2000

это пересекает допустимый объем памяти. Я могу изменить размер в php.ini, но я хочу оптимизировать использование памяти и не изменять ограничение.

поможет ли использование объектов?

Пожалуйста, предоставьте пример кода для понимания. Спасибо.

Ответы [ 2 ]

5 голосов
/ 23 марта 2010

Использование объектов, скорее всего, не поможет (это может быть даже хуже) .

В таком случае, как этот, вам нужно переосмыслить:

  • либо ваш дизайн: должен быть другой способ добиться того, чего вы хотите
    • возможно, используя другой алгоритм?
    • или хранение каких-то " временных данных " в другом месте, кроме как в памяти? Например, в базе данных SQLite?
  • или язык, который вы будете использовать для сценария
    • PHP не всегда лучший инструмент для работы.
3 голосов
/ 23 марта 2010

Предполагая, что чистый вес ваших данных пересекает предел памяти, я не могу понять, как объекты могут быть полезны. Для хранения данных это просто другая форма записи. Возможно, один метод сэкономит байт за штуку над другим - я не знаю, но если есть разница, моя ставка - объекты дороже.

Но я думаю, что общий вопрос в том, что вы пытаетесь делать с таким количеством данных? Может ли быть возможным хранить части этого на диске или в базе данных, и иметь только часть этого в памяти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...