Как вывести число которое начинается на цифру

Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5.

$arr =  ['10', '20', '30', '50', '235', '3000'];
foreach( $arr as $elem ){
    echo $elem.'<br>';
}

Ответы (3 шт):

Автор решения: Haku Kimura
foreach ($arr as $elem) {
    if (in_array(substr($elem, 0, 1), [1, 2, 5])) {
        //..
    }
}
→ Ссылка
Автор решения: Pavel

Варианты работают как с массивом строк, так и с массивом чисел

До PHP 7.4

$filtered = array_filter($arr,function($item) {
   return in_array(((string)$item)[0],[1,2,5]);
});

После PHP 7.4

$filtered = array_filter($arr,fn($item)=> in_array(((string)$item)[0],[1,2,5]));
→ Ссылка
Автор решения: Juliia Scorp

Вариант через приведение к строке:

foreach($arr as $elem){
    $elem=(string) $elem;
    if($elem[0]==1 or $elem[0]==2 or $elem[0]==5){
        echo $elem.' ';
    }
}

Вариант через вычисление первой цифры:

foreach($arr as $elem){
    $start=($elem/10**(strlen($elem)-1))%10;
    //echo $start.' ';//получим первую цифру 1 2 3 5 2 3
    if($start==1 or $start==2 or $start==5){
       echo $elem;
    }
}
→ Ссылка