2016-04-22 64 views
-3

我的$數組有32個值,我想使用循環,但我不知道。如何在php中使用循環

if ($array[0] > 1) 
{ 
    echo $array[0]; 
    unset($array[0]); 
} 

else if ($array[1] > 1) 
{ 
    echo $array[1]; 
    unset($array[1]); 
} 

else if ($array[2] > 1) 
{ 
    echo $array[2]; 
    unset($array[2]); 
} 
else 
{ 
    echo "<a href=' ".$_SERVER['PHP_SELF']."?month=".$monthstring."&day=".$daystring."&year=".$year." '>".$i." </a></td>"; 
} 
+1

你究竟想要做什麼? – T0xicCode

+1

您可以使用[foreach](http://php.net/manual/en/control-structures.foreach.php),[for](http://php.net/manual/en/control-structures.for .php)或[while](http://php.net/manual/en/control-structures.while.php)遍歷數組。 – JimL

+0

我可以看到有一個$ i變量,從它看起來你已經嘗試循環? – chba

回答

0

我想是這樣的

foreach($array as $index => $value) 
{ 
    if ($value > 1) 
    { 
     echo $value; 
     unset($array[$index]); 
    } 
    else 
    { 
     echo '<a href="', $_SERVER['PHP_SELF'], '?month=', $monthstring, '&day=', $daystring, '&year=', $year, '>', $index, '</a>'; 
    } 
} 
+0

Almost.Works好,但如果其他人不好 –

+0

那還有什麼問題?你想在哪一點停止循環?可能是我錯過了一個觀點。您可能會使用Barmar的解決方案,但是您可以避免$刪除的變量,並在其他括號中的回聲後立即制動。 – chba

0

否則是整個循環後,我想應該是這樣的:

$found = false; 
foreach($array as $index => $value) 
{ 
    if ($value > 1) 
    { 
     echo $value; 
     unset($array[$index]); 
     $found = true; 
     break; 
    } 
} 
if(!$found) { 
    echo '<a href="', $_SERVER['PHP_SELF'], '?month=', $monthstring, '&day=', $daystring, '&year=', $year, '>', $index, '</a>'; 
} 
+0

原始代碼只回應和取消找到的第一個值,而不是全部。這就是爲什麼我的答案突破了循環。 – Barmar

+0

忘了打破,修復,謝謝@Barmar –

0

使用foreach循環,跳出來在取消設置大於1的第一個元素後,使用變量來跟蹤是否刪除了任何內容,因此您知道是否在循環後回顯錨點。

$deleted = false; 
foreach ($array as $index => $value) { 
    if ($value > 1) { 
     echo $value; 
     unset($array[$value]); 
     $deleted = true; 
     break; 
    } 
} 
if (!$deleted) { 
    echo "<a href=' ".$_SERVER['PHP_SELF']."?month=".$monthstring."&day=".$daystring."&year=".$year." '>".$i." </a></td>"; 
}