I have the following problem but I will simplify it here:
JavaScript
x
$starting = 0;
$arrayOfNumbersToSkip = [1, 3, 4, 5, 6];
$ending = 7;
Part 1: Give me the first number available? “Answer is 2”
Part 2: Give me the next number available? “Answer is 7”
This is a simplified version of a math problem im facing, im designing a dynamic approval system that modifies the entire program based on changeable rules.
Advertisement
Answer
You could use array_diff
with a range
from $starting+1
to $ending
:
JavaScript
$availableNumbers = array_diff(range($starting+1, $ending), $arrayOfNumbersToSkip);
if (!count($availableNumbers)) {
echo "no numbers availablen";
}
else {
echo "first number available = " . array_shift($availableNumbers);
}
print_r($availableNumbers);
Output:
JavaScript
first number available = 2
Array
(
[0] => 7
)
The output shows that there are still available numbers (you can keep using array_shift
to get them) after taking 2
from the array.