2013-05-29 80 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()

这就是说,它可能不适合你需要做的最明智的解决方案,并@大卫洁圣取得了良好的建议。