Потребление памяти массивом PHP для неиспользуемых смещений

извините, если на этот вопрос уже был дан ответ где-то еще, но я не смог его найти (возможно, из-за того, что мне было сложно сформулировать свой вопрос правильно).

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

$array[345] = {'id' => 345,
               'info1' => 'lorem',
               'infor2' => 'ipsum'} 

$array[448] = {'id' => 448,
               'info1' => 'lorem',
               'infor2' => 'ipsum'}

Мой вопрос ... Я знаю, что индексы передаются как целые числа. Итак, я думаю (возможно, неправильно), что они обрабатываются массивом как числовые смещения (в отличие от ассоциативно.) Итак, если первый индекс равен 345, система автоматически резервирует место в памяти для индексов от 0 до 344 ? Код все отлично работает, но мне интересно, если этот метод съест кучу памяти. Особенно, если я доберусь до точки, где только два массива хранятся в 322 343 и 554 324. Извините, если это глупый вопрос, спасибо за любые ответы.

4 голоса | спросил dgeare 1 AMpSun, 01 Apr 2012 01:16:09 +040016Sunday 2012, 01:16:09

1 ответ


0

Нет, массивы являются хэш-картами, а ключи не имеют смещения, например

$foo = array(0 => 'x', 1000 => 'y')

это только два элемента. Между ними нет ничего зарезервированного.

ответил Gordon 1 AMpSun, 01 Apr 2012 01:21:50 +040021Sunday 2012, 01:21:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132