PHP Как найти пропущенные серийные номера в буквенно-цифровой серии - PullRequest
0 голосов
/ 25 октября 2019

У меня есть XML-файл, из которого я могу сгенерировать массив PHP из всех серийных номеров.

Мои требования - найти ВСЕ С пропущенными серийными номерами в этом списке массивов.

Мы можем найти пропущенное число в целых числах массива следующим образом

$sr_array = array("1","2","5","9");

$sr_range = range(min($sr_array),max($sr_array)); 

$missing = array_diff($sr_range,$sr_array);

Приведенный выше код даст результат в виде («3», «4», «6», «7», «8»)

Основная проблема заключается в том, что серийные номера находятся в алфавитно-цифровой серии.

$sr_array = array("NT1846U6000018",
"NT1846U6000019",
"NT1850U6000033",
"NT1923U6000002",
"NT1941U6023833");

Последовательность вывода должна быть такой же, как в следующей последовательности (начало и конец серии), но без элементов массива, указанных в примере выше.

Шаг - 1: первый элемент массива равен "NT1846U6000018 "и последним элементом массива является" NT1941U6023833 "и необходимо найти все элементы массива между ними. Здесь можно предположить, что элемент символов в серии останется неизменным. то есть. NTxxxxUxxxxxxx

Шаг - 2: Удалить элементы массива, которые мы уже нашли, в файл XML.

NT1846U6000018

...

...

NT1941U6023833

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

Спасибо

...