$numbers = [
123,
124,
125,
111,
222,
566,
777,
];
$shift = 0;
foreach ($numbers as $i=>$number) {
$digits = str_split((string)$number);
$first = $digits[0];
$same = true;
foreach ($digits as $digit) {
if ($digit !== $first) {
$same = false;
break;
}
}
if ($same) {
$shift++;
} else {
$numbers = array_merge(
array_slice($numbers, 0, $shift),
array_slice($numbers, $shift+1)
);
}
}
<?php
$numbers = [
123,
124,
125,
111,
222,
566,
777,
];
$numbers = array_filter($numbers, function($n){ $n = (string)$n; return $n[0] == $n[1] && $n[1] == $n[2];});
$numbers = [
'123',
'124',
'125',
'111',
'222',
'566',
'777',
];
$cleanNumbers = [];
foreach ($numbers as $key=>$number) {
// не нужно делать универсальным поиск нужных значений, т.к. он слишком специфичен, поэтому так:
if ($number[0]===$number[1] && $number[1]===$number[2]) {
// здесь проще было бы написать $cleanNumbers[] = $number;
$cleanNumbers[] = array_slice($numbers, $key, 1);
// а если нужно все таки удаление, то достаточно unset($numbers[$i]) с противоположным условием
}
}
var_dump($cleanNumbers);