重复/循环数组查找(当查找索引大于最高索引时)



在我进一步讨论之前,我知道标题可能是完全模棱两可的,这一定是以前问过的,但是我只是不能更好地表达它,也不能想到我正在尝试执行的过程的已知名称。

这个问题的上下文是一个每日事件的数组,这些事件无限重复,直到设定的结束日期。

本质上,给定这些日常事件的数组,我需要一段代码,它可以说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

相关内容

  • 没有找到相关文章

最新更新