Как перебрать простой массив дней недели?
Совсем без if не получится наверно:$n = 3;
$m = 2;
for ($i = $n; ; $i = ($i < 7 ? $i + 1 : 1)){
    echo $i . ' ';
    if ($i == $m) break;
}
https://ideone.com/ACJIjQ
Вот ещё такой вариант:$n = 3;
$m = 2;

$i = $n - 1;
do {
	$d = $i % 7 + 1;
	echo $d . ' ';
	$i++;
} while ($d != $m);
https://ideone.com/1NKS0Q
И ещё:$array = [1, 2, 3, 4, 5, 6, 7];
$n = 3;
$m = 2;

$i = array_search($n, $array);
$result = array_merge(array_slice($array, $i), array_slice($array, 0, $i));
https://ideone.com/g4ewhT
С 3 по 2 это в обратном порядке что ли? Тогда:$reversed = array_reverse($array);
for($i=4; $i<6; $i++){
 echo $reversed[$i];
}
<= нельзя ставить он у вас зациклиться в бесконечный цикл