2014-01-22 61 views
0

你好,我試圖讓我的循環動態計數向後或向前。 (處理正面負面和負面正面)動態For循環(向前或向後計數)

下面是我的代碼,但它似乎並沒有正常工作。 (我不明白如何用變量將+1從+1更改爲-1)

function _allbetween($coords1, $coords2) { 
$blocks = ""; 

if ($coords2[0] == 0 || $coords2[1] == 0 || $coords2[2] == 0) { 
    $temp2 = $coords2[0].",".$coords2[1].",".$coords2[2]; 
    $temp1 = $coords1[0].",".$coords1[1].",".$coords1[2]; 
    $coords1 = explode(",", $temp2); 
    $coords2 = explode(",", $temp1); 
} 

for ($i=0; $i<=2; $i++) 
{ 
    if (substr($coords2[$i],0,1) == "-") { //if the value is negative 
    $step[$i] = "--"; //substract the for loop 
    } else { //else 
    $step[$i] = "++"; //add the for loop 
    } 
} 

for ($i1=$coords1[0]; $i1<=$coords2[0]; $i1.$step[0]) 
    { 
     for ($i2=$coords1[1]; $i2<=$coords2[1]; $i2.$step[1]) 
      { 
       for ($i3=$coords1[2]; $i3<=$coords2[2]; $i3.$step[2]) 
        { 
         $blocks.= $i1.",".$i2.",".$i3."|"; 
        } 
      } 
    } 
return $blocks; 
} 

任何人都看到我在做什麼錯了?

+1

我真的不明白你在做什麼......你能詳細說明一下嗎? –

+0

我正在計算基於體素的遊戲中兩個點之間的所有塊位置,使用兩組座標。我試圖支持網格上的負值(-1,0,0),在一些其他語言中,要求for循環被指示向後計數而不是向前計數,但是我發現php會自動計算這個值。 –

回答

0

沒關係!

我現在看到的PHP自動處理正面和負面的價值觀不改變++來 -

0

也許你正在尋找這一點。

for ($i=0; $i<=2;) // Note the removed $i++ here 
{ 
    if (substr($coords2[$i],0,1) == "-") { //if the value is negative 
    $i--; //$step[$i] = "--"; //substract the for loop 
    } else { //else 
    $i++; //$step[$i] = "++"; //add the for loop 
    } 
} 
+0

這也適用,但如前所述,這似乎有點多餘,因爲如果第二個值小於第一個值,php似乎會自動減去該值!感謝您的貢獻! –