Gibt’s in PHP eine Funktion die mir das ganze erledigt kann?
die funktionhast du ja schon, also musst du nur vereinfachen, weil wenn du dir das angugst wiederholt sich das nach einem schema :
function ($x){
$rest = $x % 5;
ergibt wohl 0,1,2,3,4
switch ($rest){
case 1:
$x += 4;
wie erhalte ich die 4 ?
Naja wenn ich 5 hab und 1 abziehe hab ich vier, wo ist die 1 im case
break;
case 2:
$x+= 3;
wie krieg ich die 3 , also wenn ich die 5 hab und 2 abziehe hab ich 3 die steht im case
setzen wir mal case ein als variable also $rest
$x+= 5 - $rest
$rest ersetzen wir durch die formel oben
$x+= 5 - ( $x % 5)
da wir aber auch mal nach 1000er teiler suchen machen wir aus der 5 eine variable
$x+= $teiler - ($x % $teiler)
dann lösen wir noch das += auf
$x + ( $teiler - ( $x % $teiler ) )
$teiler sieht doof aus also $m für modulo oder so
$x + ( $m - ( $x % $m ) )
schreiben wir also nicht
return $x;
sondern
function ($x,$m) {
return $x + ( $m - ( $x % $m ) );
}
das problem ist nun nur noch der 0 case
das kann man mit if im return erledigen
vergleich ? wahr : falsch
function ($x,$m) {
return ($x % $m == 0) ? $x : ($x + ( $m - ( $x % $m ) )) ;
}
gruss iacta aLea est