L oop вложенный PHP массив, короче родительского - PullRequest
1 голос
/ 26 мая 2020

Хорошо, у меня есть два массива - один для сообщений и ограниченный массив из 5 значений для цветов для каждого сообщения. Я хочу, чтобы сообщения циклически менялись по массиву цветов, чтобы каждый шестой начинался заново. То, что я делаю сейчас, само по себе работает с ограниченным количеством сообщений, но это не очень элегантно:

$colors = array('yellow', 'red', 'blue', 'green', 'purple');

foreach($posts as $i => $post) {
  $color = $colors[$i];
  if ($i >= count($colors)) {
    $color = $colors[-count($colors) + $i];
    if ($i >= (count($colors) * 2)) {
      $color = $colors[(-count($colors) * 2) + $i];
    }
  }
//Do stuff here
}

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

1 Ответ

2 голосов
/ 26 мая 2020

Модуль 5 (% 5) быстро исправит

for($i=0;$i<count($posts);$i++){
   $color=$colors[$i%5];
   # todo here
}
...