0

I am using PHP 4.3.5. I am having a problem in which my script is crashing when it is using a large array. I have simplified the problem down to the following example:

<?
set_time_limit(0);
echo("<html><body>test<br>");
$array1 = array();
$value1 = 1;
for ($index = 0; $index < 160000; $index++)
{
$array1[] = $value1;
}
for($index = 0; $index < 100; $index++)
{
echo("index = $index, value = $array1[$index]<br>");
}
echo("done<br>");
echo("</body></html>");
exit(0);
?>

If I run the above code it crashes with nothing displayed to the screen. If I change the loop to go to 80000 instead of 160000 then it works fine.

Also, I can keep the loop setting at 160000 but change the line:
$array1[] = $value1;
to instead read
$array1[] = 1;
and then it also works fine.

What is going on?

Thanks,
Mark

2
Contributors
1
Reply
4
Views
13 Years
Discussion Span
Last Post by samaru
0

How much memory do you have on the server? I have two servers, one with 128MB, and another with 512MB, and it runs fine. I don't know off hand if there's a PHP restriction on array sizes, but I know it must depend on your memory. Also, if you're trying to initialize a large array, consider using array_fill():

$array1 = array_fill(0, 160000, $value1);

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.