Возврат к началу массива во время цикла foreach в PHP (циклический)?

Когда вы достигнете конца массива в цикле PHP foreach, есть ли способ просто начать сначала?

Я строю график, используя JS и PHP группы разных людей. Я хотел бы иметь разные цвета для каждого человека на графике, но количество людей варьируется и неизвестно.

Я построил массив шестнадцатеричных кодов для обхода, но проблема в том, что когда число людей превышает количество шестнадцатеричных кодов в массиве, выдается ошибка.

Я понял, что могу просто копировать и вставлять шестнадцатеричные коды, пока их не станет больше, чем людей, но это не выглядит как очень элегантное решение.

Какие-нибудь мысли?

3 ответа

Решение

Ну скажем N длина вашего C массив (цвета) и P это ваш массив людей.

Оставьте цикл foreach в покое и используйте обычный старый для цикла с i как переменная цикла. Тогда для человека P[i] цвет будет C[i%N]

Чтобы ответить на ваш вопрос, используйте reset()

Тем не менее, это может быть не самым мудрым решением для того, что вам нужно сделать, и @David Jesh сделал хорошее предложение.

Может быть, вы можете использовать цикл for вместо foreach и сделать что-то, как показано ниже.

for($i=0;$i<count($hex_array);$i++)
{
  if($i>=(count($hex_array)-1))
  {
    $i=0;
  }
enter code here
}
Другие вопросы по тегам