Php 将迭代次数转换为有限范围(如星期几)

Php 将迭代次数转换为有限范围(如星期几),php,range,limit,Php,Range,Limit,我需要将迭代数转换为1到7之间的范围 $y = keepInRange(1, 7, $i) 结果输入->输出预期如下 1->1 7->7 8->1 9->2 14->7 15->1 我已经尝试了以下方法,但没有成功: min(7, max(1, $numberToStr[$i])) (all output 1) $y = $i % 7 (all outputs 0, Edit: this was a mistake by me, its the solution when +1 is

我需要将迭代数转换为1到7之间的范围

$y = keepInRange(1, 7, $i)
结果输入->输出预期如下

  • 1->1
  • 7->7
  • 8->1
  • 9->2
  • 14->7
  • 15->1
我已经尝试了以下方法,但没有成功:

min(7, max(1, $numberToStr[$i])) (all output 1)
$y = $i % 7 (all outputs 0, Edit: this was a mistake by me, its the solution when +1 is added.)
尝试:

$day\u of\u week=$num试试这个

<?php
$num = 15;
$res= $num%7;
if($res == 0)
{
    echo "7";
}
else
{
    echo $res;
}

你能再解释一下吗?当然,它需要保持在1到7之间,如果它超过了,就需要每降低7次。例如:23您可以删除7三次。仍然是2。是的,输出应该是数组吗?(变量$y)什么是$i?该表达式应该可以工作:
($i-1)%7+1
。您需要$i是整数而不是字符串。如果curr number(
$i
)是负数,该怎么办?输出应该是什么?
for($num=1; $num<25; $num++) {
    $day_of_week = $num <= 7 ? $num : $num % 7;
    echo '<p>'.$num.': '.$day_of_week.'</p>';
}
<?php
$num = 15;
$res= $num%7;
if($res == 0)
{
    echo "7";
}
else
{
    echo $res;
}