2016-07-04 7 views
4

Ich brauche eine Iterationszahl zu einem Bereich zwischen 1 und 7.Convert Iterationszahl in einem begrenzten Bereich (wie Tag der Woche Nummer)

$y = keepInRange(1, 7, $i) 

Das Ergebnis Eingabe übersetzen -> Ausgang wird erwartet, wie folgt

  • 1 -> 1
  • ...
  • 7 -> 7
  • 8 -> 1
  • 9 -> 2
  • ...
  • 14 -> 7
  • 15 -> 1

Ich habe bereits versucht die folgenden ohne Erfolg:

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.) 
+1

können Sie ein bisschen mehr erklären? –

+0

sicher, es muss zwischen 1 und 7 bleiben, wenn es darüber kommt, muss um 7 jeweils abgesenkt werden. für ein Beispiel: 23 Sie können 7 dreimal entfernen. was bleibt 2. – IMarks

+0

Ja, sollte der Ausgang ein Array sein? (Variable $ y) Was ist $ i? –

Antwort

2

versuchen diese

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

https://3v4l.org/dDGs3

ich es hoffe, hilfreich sein wird

2

Versuchen:

$day_of_week = $num <= 7 ? $num : $num % 7; 

Demo:

for($num=1; $num<25; $num++) { 
    $day_of_week = $num <= 7 ? $num : $num % 7; 
    echo '<p>'.$num.': '.$day_of_week.'</p>'; 
} 

Demo in JS.