<?php
error_reporting(-1);

//создаём массив для номеров
$numbers       = array();
//создаём массив для кодов операторов
$operatorCodes = array(
    39,
    50,
    63,
    66,
    67,
    68,
    91,
    92,
    93,
    94,
    95,
    96,
    97,
    98,
    99
);

for ($i = 0; $i < 30; $i++) {
    $randomCodeOfArray = array_rand($operatorCodes);
    $randomCode        = $operatorCodes[$randomCodeOfArray]; //генерирует код оператора
    $randomNumbers     = mt_rand(0000001, 9999999); //генерирует номер абонента
    $numbers[$i]       = "38 0$randomCode $randomNumbers\n"; //собирает номер
    
}

//проверяем корректность номеров, и сортируем их в соответствующие массивы
$correctNumbers   = array();
$incorrectNumbers = array();

$regexp = '/^38\\s0([0-9]{2})\\s([0-9]{7})$/';

$k1 = 0; //счётчики для массивов корректности
$k2 = 0;
for ($i = 0; $i < count($numbers); $i++) {
    
    if (preg_match($regexp, $numbers[$i])) {
        //выводим на экран хорошее число и записываем в массив для корректных
        //echo "$numbers[$i] -- ✓\n";
        $correctNumbers[$k1] = $numbers[$i];
        $k1++;
    } else {
        //выводим на экран плохое число, ошибку, и записываем в массив для некорректных
        //echo "$numbers[$i] ----------- WARNING, номер указан в неверном формате\n";
        $incorrectNumbers[$k2] = $numbers[$i];
        $k2++;
    }
    
}

echo "Корректные номера:   \n\n\n";
for ($i = 0; $i < count($correctNumbers); $i++) {
    echo "$correctNumbers[$i] \n";
}

echo "\n\n\n  Некорректные номера:  \n\n\n";
for ($i = 0; $i < count($incorrectNumbers); $i++) {
    echo "$incorrectNumbers[$i] \n";
}