2013-05-29 75 views
0

當你到達一個PHP foreach循環中的數組的末尾時,是否還有從頭再次開始?在PHP(循環)的foreach循環期間返回到數組的開頭?

我正在建立一個使用JS和PHP的一組不同的人。我想爲圖表上的每個人呈現不同的顏色,但人數不盡相同。

我已經建立了一個十六進制代碼循環數組,但問題是,當人數超過數組中的十六進制代碼數時會拋出一個錯誤。

我意識到我可以複製和粘貼十六進制代碼,直到人數超過人數,但它似乎不是一個非常優雅的解決方案。

有什麼想法?

+0

遞歸函數,也許? – BlitZ

+1

爲此http://br.php.net/reset –

回答

1

好吧,比方說N是你的C數組(顏色)的長度,而P是你的人員數組。

單獨離開foreach循環,並使用普通的老循環與i作爲循環變量。然後對於人P[i]顏色將爲C[i%N]

+0

天才使用函數'reset' - 謝謝! – user2432283

0

也許您可以使用'for'循環而不是'foreach'並執行以下操作。

for($i=0;$i<count($hex_array);$i++) 
{ 
    if($i>=(count($hex_array)-1)) 
    { 
    $i=0; 
    } 
enter code here 
} 
0

要回答你的問題,使用reset()

這就是說,它可能不適合你需要做的最明智的解決方案,並@大衛潔聖取得了良好的建議。