小编Tom*_*Tao的帖子

为什么使用 array_map 进行大数组时内存溢出?

当我测试时array_map()功能时。有一个很奇怪的现象。

正常大小的数组

$array = range(1, 100000);
echo memory_get_usage();
array_map(function($value) {}, $array);
echo memory_get_usage();
Run Code Online (Sandbox Code Playgroud)

结果

8649024
8649024
Run Code Online (Sandbox Code Playgroud)

很明显,内存大小是相等的。

但对于大数组

$array = range(1, 10000000);
echo memory_get_usage();
array_map(function($value) {}, $array);
echo memory_get_usage();
Run Code Online (Sandbox Code Playgroud)

结果

84319040
Run Code Online (Sandbox Code Playgroud)

致命错误:第 6 行 G:\phpStudy\WWW\testSpeed.php 中允许的内存大小 134217728 字节已耗尽(尝试分配 36 字节)

为什么?我到处都有搜索答案。但似乎很少有人有这个问题。如果有人可以帮助我吗?谢谢你!

php arrays array-map

6
推荐指数
1
解决办法
1952
查看次数

标签 统计

array-map ×1

arrays ×1

php ×1