foreach循环中的PHP-GD绘图

foreach循环中的PHP-GD绘图,php,gd,Php,Gd,我有以下使用GD在图像上绘制绿色正方形的代码: $img = imagecreatefrompng("images/dota.png"); $radiantcolor = imagecolorallocate($img, 7, 251, 15); $direcolor = imagecolorallocate($img, 250, 2, 0); $x = array( 0 => 38, 1 => 45, 2 => 25, 3 => 29, 4 => 34, 5 =

我有以下使用GD在图像上绘制绿色正方形的代码:

$img = imagecreatefrompng("images/dota.png");
$radiantcolor = imagecolorallocate($img, 7, 251, 15);
$direcolor = imagecolorallocate($img, 250, 2, 0);

$x = array(
0 => 38,
1 => 45,
2 => 25,
3 => 29,
4 => 34,
5 => 62,
6 => 83,
7 => 116,
8 => 76,
9 => 135,
10 => 232,
);

$y = array(
0 => 234,
1 => 240,
2 => 205,
3 => 161,
4 => 116,
5 => 219,
6 => 198,
7 => 171,
8 => 256,
9 => 260,
10 => 257,
);

foreach ($towerstatus_radiant as $key => $tower){
if ($tower == 1){
    $x = $x[$key];
    $y = $y[$key];
    imagefilledrectangle($img, $x, $y, $x+8, $y+8, $radiantcolor);
}
}

header('Content-Type: image/png');
imagepng($img);
它与第一个正方形配合得很好,但在那之后,正方形似乎被放置在左上角,如下所示:


为什么会这样?

您正在覆盖$x和$y变量:

$x = $x[$key];
$y = $y[$key];

您需要在此处使用不同的变量名。

$towerstatus\u radiant
未在您的代码中定义,因此任何人都不能告诉您,只能猜测。调试时应避免猜测。非常感谢!完全错过了。