Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-数组中每个元素允许的最大大小_Php_Arrays_Multidimensional Array_Memory Leaks_Floating Point - Fatal编程技术网

PHP-数组中每个元素允许的最大大小

PHP-数组中每个元素允许的最大大小,php,arrays,multidimensional-array,memory-leaks,floating-point,Php,Arrays,Multidimensional Array,Memory Leaks,Floating Point,在我的程序中,我有12个多维数组,它们的大小在200-7000之间变化。数组中的每个单元格都包含一个高精度的浮点数(例如0.0000000000000 123344),这些数组相互传递值以进行某些计算。有时我会在某些阵列中出现内存不足的错误(我已更改了与内存相关的所有配置,并将其设置为最大)。我想知道在一个巨大的数组中允许存储一个浮点数的最大大小是多少?多谢各位 我终于找到了解决办法。我发现当PHP收集垃圾被填满时,没有办法释放它Unset和gc\u collect\u cycles()也无效。

在我的程序中,我有12个多维数组,它们的大小在200-7000之间变化。数组中的每个单元格都包含一个高精度的浮点数(例如0.0000000000000 123344),这些数组相互传递值以进行某些计算。有时我会在某些阵列中出现内存不足的错误(我已更改了与内存相关的所有配置,并将其设置为最大)。我想知道在一个巨大的数组中允许存储一个浮点数的最大大小是多少?多谢各位

我终于找到了解决办法。我发现当PHP收集垃圾被填满时,没有办法释放它
Unset
gc\u collect\u cycles()
也无效。唯一的方法是在不同的代码段上使用
**函数**
。在我的例子中,我在循环的
中有一个大脚本,因此我将所有代码复制到一个函数中,并在循环中调用该函数。每次函数停止时,内存就会释放。您可以通过在函数中添加一次
memory\u get\u usage()
和从函数中添加一次来测试它,以查看差异

从中可以看出:“浮点的大小取决于平台,尽管最大值~1.8e308,精度约为14位十进制数字是一个常见值(64位IEEE格式)。”但如果您想保留带有尾随零等的值,最好将其存储为字符串:
$arr=['0.0000000000000 123344',/*更多值*/];
我无法将它们存储为字符串,我需要使用这些浮点数进行计算和比较您是否查看了
splFixedArray
?您还可以了解PHP数组的大小: