Мне нужно назначить три цвета на несколько лет, и цвета повторяются.
Текущий рабочий код представляет собой массив с номерами года в качестве ключей и цветов в качестве значений.
Есть только три цвета (черный, синий, зеленый), но (надеюсь;)) неограниченное количество лет.
Пример кода:
$year=2017;
$color=array(
2017 => "black",
2018 => "blue",
2019 => "green",
2020 => "black",
2021 => "blue",
2023 => "green",
2024 => "black");
echo "$color[$year]
Как видите, цвета повторяются каждые три года, и я бы хотел, чтобы массив не записывался до «навсегда», чтобы сделать его более удобным для сопровождения.
У кого-нибудь есть идеи, как это реализовать (возможно, в функции)?
Вы можете использовать оператор модуля:
function colourFromYear($year){
$colours = ['green','black','blue'];
return $colours[$year % 3];
}
echo colourFromYear(2017); //black
echo colourFromYear(2018); //blue
echo colourFromYear(2019); //green
echo colourFromYear(7327); //black
Других решений пока нет …