# Selecting first number not in an array PHP

#### Tags: arrays, numbers, php, sorting

I have the following problem but I will simplify it here:

```\$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.

You could use `array_diff` with a `range` from `\$starting+1` to `\$ending`:

```\$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:

```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.

Demo on 3v4l.org

Source: stackoverflow