| | |
Large Array Problem
Please support our PHP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Jun 2004
Posts: 1
Reputation:
Solved Threads: 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:
[php]
<?
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);
?>
[/php]
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
[php]
<?
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);
?>
[/php]
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
Last edited by cscgal; Jun 10th, 2004 at 3:05 am.
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);
$array1 = array_fill(0, 160000, $value1);
Check out my blog at http://www.shinylight.com for more stuff about web dev.
![]() |
Similar Threads
- Large array... (Visual Basic 4 / 5 / 6)
- Problem with large array (C++)
- Large array allocation in VB (Visual Basic 4 / 5 / 6)
- class array problem! (C++)
Other Threads in the PHP Forum
- Previous Thread: How do i get other webpage and parse !
- Next Thread: Reseller script
| Thread Tools | Search this Thread |
apache api array auto beginner binary broken cache cakephp checkbox class cms code codingproblem cron curl customizableitems database date display dynamic echo email error errorlog file files filter folder form format forms forum function functions gc_maxlifetime global google headmethod href htaccess html image include insert ip javascript joomla limit link login mail malfunctioning memmory memory menu method mlm multiple mysql nodes oop parameter parsing paypal pdf php phpmysql popup query radio random recursion recursiveloop remote script search select server sessions snippet source space sql static survey syntax system table trouble tutorial up-to-date update upload url validator variable video web youtube






