У меня есть ползунок с петлей (последний элемент сопровождается первым элементом) и хотите установить другой цвет (в зависимости от диапазона 3 цвета).Как получить массив, в котором последний элемент не является ни предыдущим, ни первым элементом?
Таким образом, существует 2 условия: предыдущий цвет и следующий цвет не должны быть одинаковыми И количество слайдов (элементов в массиве) может отличаться.
Хороший пример:
Array
(
[0] => yellow
[1] => blue
[2] => red
[3] => yellow
[4] => red
)
Дурной пример (потому что элементы 0 и 4 имеют тот же цвет):
Array
(
[0] => yellow
[1] => blue
[2] => yellow
[3] => red
[4] => yellow
)
Другой плохой пример с большим количеством элементов (так как элементы 2 и 3 являются одинаковыми цвет):
Array
(
[0] => yellow
[1] => blue
[2] => red
[3] => red
[4] => blue
[5] => yellow
[6] => blue
)
Это то, что я пытаюсь, но я не думаю, что это хороший способ:
$i = 0;
$bgcolors = array();
foreach($slides as $slide) {
switch ($i % 3) {
case 0:
$bgcolors[] = 'yellow';
break;
case 1:
$bgcolors[] = 'blue';
break;
case 2:
$bgcolors[] = 'red';
break;
}
if ((count($slides) - $i) % 3 == 0) $i = 0;
$i++;
}
Для первого (хорошего) примера это должен быть синий цвет справа? или вам нужен весь цвет, который находится между двумя разными цветами? –
@HareshVidja Да, это так. Поскольку предыдущий цвет красный, а следующий цвет - желтый, синий - единственный вариант в этом случае. – Dacobah
вам нужен массив или несколько цветов только первый цвет, который удовлетворяет вашему состоянию? –