Large Array Problem 
July 17th, 2005, 06:44 AM
| | | |
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.
Why does it fail when there are 160000 elements in the array that are
set with a variable?
Thanks,
Mark | 
July 17th, 2005, 06:44 AM
| | | | re: Large Array Problem
Try:
print("index = $index, value = $array1[$index]<br>");flush();
and see where it goes wrong exactly. it will give you the output directly.
Mich
"Mark" <marktmp87342@yahoo.com> wrote in message
news:5f18923b.0406092155.5efa561f@posting.google.c om...[color=blue]
> 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.
>
> Why does it fail when there are 160000 elements in the array that are
> set with a variable?
>
> Thanks,
> Mark[/color] | 
July 17th, 2005, 06:44 AM
| | | | re: Large Array Problem
"Mark" <marktmp87342@yahoo.com> wrote in message
news:5f18923b.0406092155.5efa561f@posting.google.c om...[color=blue]
> 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.
>
> Why does it fail when there are 160000 elements in the array that are
> set with a variable?[/color]
What do you mean by "crashing?" Did Apache (or whatever) blow up or did you
just get a blank page? On computers with small amount of memory, PHP can
indeed crash the server. |  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 225,689 network members.
|