Intereting Posts
Symfony2 PRE_SET_DATA $ event-> getData () возвращает неправильный объект Стоимость проверки времени изменения файла Как определить, является ли список подмножеством другого списка? Как присоединиться к таблице несколько раз в Propel? Объединить значения ячейки с PHPExcel – PHP TYPO3: Как визуализировать текстовые элементы tt_content в моих собственных расширениях? Как подключить расширение в URL-адресе jQuery AJAX добавление таблицы tr в конце таблицы Регулярное выражение PHP соответствует последним вхождениям в соответствие шаблону Библиотека PHP OpenID, которая позволяет facebook / openid / twitter и т. Д .; PHP: регулярное выражение для поиска некоторых слов в длинной строке phpseclib / jsbn: шифрование с открытым ключом в PHP, дешифрование с помощью закрытого ключа в jsbn Библиотека клиентов Google Диска PHP Получить список файловых ресурсов Настройка базы данных тестирования для приемочных тестов в Codeception (Laravel) Передача нескольких аргументов функции обратного вызова (с использованием PHP 5.2)

использование памяти массивом PHP при добавлении огромного числового ключа

Если я хочу использовать неассоциативный массив PHP, как словарь, и добавить большой ключ, сколько памяти будет выделяться PHP?

$myArray = Array(); $myArray[6000] = "string linked to ID 6000"; $myArray[7891] = "another key-value pair"; 

Будет ли PHP также выделять память для неиспользуемых ключей 0-5999 и 6001-7890?

Related of "использование памяти массивом PHP при добавлении огромного числового ключа"

Нет, PHP не реализует это как массив стиля C. Массивы Php являются ассоциативными контейнерами, как утверждает статья php о состояниях массивов .

Массив в PHP на самом деле является упорядоченной картой. Карта – это тип, который связывает значения с ключами.

Поскольку порядок сохраняется, массив, скорее всего, будет своего рода двоичным деревом поиска. Если вы не знакомы с бинарными деревьями поиска, я предлагаю собрать хорошую книгу структур данных, чтобы узнать больше или проверить эту статью в википедии для краткого изложения. В приведенном выше примере вы получите двоичное дерево поиска с двумя узлами – одно для данных с ключом 6000, другое для ключа 7891.

Он не будет выделять память для индексов 0-5999.