Skip to content
Advertisement

JSON_ENCODE can’t encode large array

I need help with encoding large array into JSON using PHP’s json_encode(). The array is from a local Database. I am using JS to parse JSON. However, the PHP script that handles array to JSON format stops if the dataset is too big. (i.e 100,000 Results). I tried to up my memory_limit to -1 and still does not help. Is it possible to encode a big array using PHP’s json_encode()?

Please let me know if my question is too confusing.

Thank you all!

Advertisement

Answer

If each of the rows in your array are successfully encoded by json_encode, then take advantage of that fact by only encoding each row and echo’ing out the array structure yourself.

That is

$prefix = '';
echo '[';
foreach($rows as $row) {
  echo $prefix, json_encode($row);
  $prefix = ',';
}
echo ']';

If the nesting is more complex, then a bit more detailed technique needs to be employed, but this technique saved me when I encountered the problem.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement