Выбор первого числа не в массиве PHP - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть следующая проблема, но я упросту ее здесь:

$starting = 0;
$arrayOfNumbersToSkip = [1, 3, 4, 5, 6];
$ending = 7;

Часть 1: Дайте мне первый доступный номер?«Ответ 2»

Часть 2: Дайте мне следующий доступный номер?«Ответ 7»

Это упрощенная версия математической задачи, с которой я сталкиваюсь: я разрабатываю динамическую систему утверждения, которая модифицирует всю программу на основе изменяемых правил.

1 Ответ

1 голос
/ 29 сентября 2019

Вы можете использовать array_diff с range от $starting+1 до $ending:

$availableNumbers = array_diff(range($starting+1, $ending), $arrayOfNumbersToSkip);
if (!count($availableNumbers)) {
    echo "no numbers available\n";
}
else {
    echo "first number available = " . array_shift($availableNumbers);
}
print_r($availableNumbers);

Выход:

first number available = 2
Array
(
    [0] => 7
)

Выходные данные показывают, что все еще имеются доступные номера (вы можете продолжать использовать array_shift для их получения) после получения 2 из массива.

Демо на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...