Каков макс. размер ключа для массива в PHP?

Обычно я делаю общую фильтрацию по строкам следующим образом:

criterion = lambda row: row['countries'] not in countries
not_in = df[df.apply(criterion, axis=1)]
65
задан Ross 21 January 2009 в 21:43
поделиться

2 ответа

Это, кажется, ограничено только пределом памяти сценария.

А быстрый тест получил меня ключ 128 МБ без проблем:

ini_set('memory_limit', '1024M');

$key = str_repeat('x', 1024 * 1024 * 128);

$foo = array($key => $key);

echo strlen(key($foo)) . "<br>";
echo strlen($foo[$key]) . "<br>";
79
ответ дан Greg 7 November 2019 в 11:41
поделиться

Нет никакого практического предела размеру строки в PHP. Согласно руководство :

Примечание: Это не проблема для строки для становления очень большим. PHP не налагает границы на размер строки; единственный предел является доступной памятью компьютера, на котором работает PHP.

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

17
ответ дан Lusid 7 November 2019 в 11:41
поделиться
Другие вопросы по тегам:

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