在我进一步讨论之前,我知道标题可能是完全模棱两可的,这一定是以前问过的,但是我只是不能更好地表达它,也不能想到我正在尝试执行的过程的已知名称。
这个问题的上下文是一个每日事件的数组,这些事件无限重复,直到设定的结束日期。
本质上,给定这些日常事件的数组,我需要一段代码,它可以说for dayn返回将在该天发生的事件。其中dayn可以大于原始数组中每日事件的计数。
因此,给定数组中的5个事件和日期n = 8
的示例,它将返回数组的索引2。
编辑为清晰:让我给出一个工作代码示例:
$events = ['event 1', 'event 2', 'event 3'];
$dayOfCycle = 12;
echo eventForDay($events, $dayOfCycle); // should echo 'event 3'
echo eventForDay($events, 8); // should echo 'event 2'
我需要一个函数在$events
数组上循环和重复,直到它达到相对索引
在我的脑海中,它应该是这样的,但我肯定会有一个多更好的做法:
function eventForDay($events, $dayOfCycle){
$counter = 0;
for($i = 1; $i <= $dayOfCycle; $i++){
if($i >= count($events)){
$counter = 0;
}else{
$counter++;
}
}
return $events[$counter];
}
这叫做模算子
只是做:
function eventForDay($events, $dayOfCycle){
return $events[--$dayOfCycle % count($events)];
}
这将返回所需的结果。参见:PHP fiddle