2016-09-16 167 views
0

有更有效的方式来设置JSON数组值吗?运行foreach的PHP内存限制

for($i=0;$i<sizeOf($json['activity']);$i++){ 
     $json['activity'][$i]['active'] = 'false'; 
} 

我想成立一​​个名为“主动”为“假” 该阵列的所有子键并不大,他们与约8-10子阵列的多维度,我对XAMPP本地主机上运行。

我越来越

Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) 

错误短暂,然后将代码的其余部分运行在的setInterval确定。我研究过设置内存限制的方法,但怀疑必须有一种更简洁的方法来设置数组键。

谢谢

+0

你尝试设置为false作为布尔值吗?它将使用比使用false作为字符串更少的空间。另一个优化可以在循环中使用之前将sizeof($ json ['activity'])赋给变量。 –

回答

1

如果我理解正确这,您创建了一个无限循环,因为它运行每次,你的阵列得到一个更大的价值,与您的$ I-计数器。尝试获取数组中的第一个单独的变量,然后运行该循环

$c = sizeOf($json['activity']); for($i=0;$i<$c;$i++){ 
    $json['activity'][$i]['active'] = 'false'; 
}