PHP 中数组的最大密钥大小是多少?

2022-08-30 08:47:33

我正在生成关联数组,键值是1..n列的字符串连接。

是否有回来咬我的钥匙的最大长度?如果是这样,我可能会停下来,以不同的方式做。


答案 1

它似乎只受脚本内存限制的限制。

快速测试让我获得了128mb的密钥,没问题:

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>";

答案 2

PHP 中的字符串大小没有实际限制。根据手册

注意:字符串变得非常大是没有问题的。PHP对字符串的大小没有限制;唯一的限制是运行 PHP 的计算机的可用内存。

可以安全地假设这也适用于在数组中使用字符串作为键,但根据PHP处理其查找的方式,您可能会注意到随着字符串变大而性能下降。