function
NextRelatedNumber(
$number
,
$range
){
$r
=
$number
%
$range
;
$f
=
$number
-
$r
;
$b
=
round
(
$r
/
$range
, 0);
return
(
$b
== 1) ?
$f
+
$range
:
$f
;
}
function
NextHigherNumber(
$number
,
$range
){
$r
=
$number
%
$range
;
$f
=
$number
-
$r
;
$b
=
ceil
(
$r
/
$range
);
return
(
$b
== 1) ?
$f
+
$range
:
$f
;
}
function
NextLowerNumber(
$number
,
$range
){
$r
=
$number
%
$range
;
$f
=
$number
-
$r
;
$b
=
floor
(
$r
/
$range
);
return
(
$b
== 1) ?
$f
+
$range
:
$f
;
}
function
NextNumberArray(
$Number
,
$NumberRangeArray
){
$w
= 0;
$c
= -1;
$abstand
= 0;
$l
=
count
(
$NumberRangeArray
);
for
(
$pos
=0;
$pos
<
$l
;
$pos
++){
$n
=
$NumberRangeArray
[
$pos
];
$abstand
= (
$n
<
$Number
) ?
$Number
-
$n
:
$n
-
$Number
;
if
(
$c
== -1){
$c
=
$abstand
;
continue
;
}
else
if
(
$abstand
<
$c
){
$c
=
$abstand
;
$w
=
$pos
;
}
}
return
$NumberRangeArray
[
$w
];
}
print
'NextRelatedNumber: '
;
print
NextRelatedNumber(44, 10) .
"\n"
;
print
'NextHigherNumber: '
;
print
NextHigherNumber(41, 20) .
"\n"
;
print
'NextLowerNumber: '
;
print
NextLowerNumber(57, 5) .
"\n"
;
print
'NextNumberArray: '
;
print
NextNumberArray(45,
array
(3, 8, 19, 34, 56, 89)) .
"\n"
;