2016-09-16 5 views
0

Есть ли более эффективный способ установить значения массива JSON, чем это?Ограничение памяти PHP в строке работает foreach

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 как string. Другая оптимизация вы можете назначить sizeof ($ json ['activity']) переменной перед использованием в цикле. –

ответ

1

Если я понимаю правильно, вы создали бесконечный цикл, так как каждый раз, когда он работает, ваш массив получает еще одно значение, так же, как ваш $ я-счетчика. Попробуйте получить счетчик массива сначала в отдельной переменной, а затем запустите цикл с этим

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