尝试在数组中创建网格映射在php中返回一个致命的内存错误

尝试在数组中创建网格映射在php中返回一个致命的内存错误,php,arrays,memory,grid,fatal-error,Php,Arrays,Memory,Grid,Fatal Error,我正在开发一个随机的RPG地图生成器,它被插入到数据库中供以后检索。基本上,用户将在表单上输入一些次要细节,并指定他们需要在地图上拥有的每个地形的瓷砖数量。然后将瓷砖随机插入地图和数据库中。我将平铺插入一个数组,然后洗牌结果。我在阵列中循环,然后循环和X&Y栅格以插入地形数据。但每次这样做时,我都会遇到一个内存错误:致命错误:允许的内存大小为268435456字节(已尝试分配32字节)这是我的代码: $gridarray = array(); for ($jungle1 = 0; $jungl

我正在开发一个随机的RPG地图生成器,它被插入到数据库中供以后检索。基本上,用户将在表单上输入一些次要细节,并指定他们需要在地图上拥有的每个地形的瓷砖数量。然后将瓷砖随机插入地图和数据库中。我将平铺插入一个数组,然后洗牌结果。我在阵列中循环,然后循环和X&Y栅格以插入地形数据。但每次这样做时,我都会遇到一个内存错误:致命错误:允许的内存大小为268435456字节(已尝试分配32字节)这是我的代码:

$gridarray = array();

for ($jungle1 = 0; $jungle1 <= $jungle -1; $jungle1++) {
array_push($gridarray,"jungle");
}

for ($swamp1 = 0; $swamp1 <= $swamp -1; $swamp1++) {
array_push($gridarray,"swamp");
}

for ($cave1 = 0; $cave1 <= $cave -1; $cave1++) {
array_push($gridarray,"cave");
}

for ($mountain1 = 0; $mountain1 <= $mountain -1; $mountain1++) {
array_push($gridarray,"mountain");
}
for ($ocean1 = 0; $ocean1 <= $ocean -1; $ocean1++) {
array_push($gridarray,"ocean");
}

for ($volcanic1 = 0; $volcanic1 <= $volcanic -1; $volcanic1++) {
array_push($gridarray,"volcanic");
}

for ($desert1 = 0; $desert1 <= $desert -1; $desert1++) {
array_push($gridarray,"desert");
}

for ($dirt1 = 0; $dirt1 <= $dirt -1; $dirt1++) {
array_push($gridarray,"dirt");
}

for ($forest1 = 0; $forest1 <= $forest -1; $forest++) {

array_push($gridarray,"dirt");
}

for ($arctic1 = 0; $arctic1 <= $arctic -1; $arctic++) {

array_push($gridarray,"arctic");
}

for ($grass1 = 0; $grass1 <= $grass -1; $grass++) {

array_push($gridarray,"grass");
}

echo '<table cellspacing="0" cellpadding="0" border="0">';
$gridsquare = $xsize * $ysize;

$grid = 0;
shuffle($gridarray);



for ($x = 1; $x <= $xsize; $x++) {
    echo '<tr>';
          for ($y = 1; $y <= $ysize; $y++) {

           $terrain = $gridarray[$grid];
           $terrain_img = 'http://www.sw-bfs.com/images/grids/' . $terrain . '.png';

$query2 = " INSERT INTO terrain ( ent_id, ent_type, grid_img, grid_type, grid_exit_e, grid_exit_w, grid_exit_s, grid_exit_n, grid_exit_u, grid_exit_d, x, y)  VALUES ( '$loc_id', 'terrain', '$terrain_img', '$terrain','1', '1', '1', '1', '0', '0', '$x', '$y') "; 

 $result2 = mysql_query($query2) or die(mysql_error());

echo '<td><img src="' . $terrain_img . '" title="' . $terrain . '"/></td>';

$grid++;



} 
echo '</tr>';


} 
echo "</table>";
显然我做错了什么,或者至少我写代码的效率不够。原谅我,我还在学习。有人能提供更好的帮助吗?提前谢谢你。

没关系。这:

for ($arctic1 = 0; $arctic1 <= $arctic -1; $arctic++) {

array_push($gridarray,"arctic");
for($arctic1=0;$arctic1)
for ($arctic1 = 0; $arctic1 <= $arctic -1; $arctic++) {

array_push($gridarray,"arctic");
for ($arctic1 = 0; $arctic1 <= $arctic -1; $arctic1++) {

array_push($gridarray,"arctic");