2013-09-06 5 views
-2

Я хочу иметь инструкцию if в PHP для вычисления, если INT равно только определенным числам. Образец будет выглядеть следующим образом: 3, 5, 8, 10, 13, 15, 18, 20 и т. Д. Он добавляет 3, затем 2, повторяя. Образец согласуется с последней цифрой (3,5,8,0), но я не хочу включать первый 0.Если INT равен 3,5,8,10,13,15 (и т. Д.)

Я мог бы сделать это таким образом, но это может продолжаться вечно ...

if($int == 3 || $int == 5 || $int == 8 || $int == 10 ....) 
{ 
    //do stuff 
} 

Этот способ также делает кратные 3 ...

if ($int % 3 == 0) 
{ 
    //do stuff 
} 

Но не делает картину я хочу. Каков правильный способ сделать это?

+0

Не можете вы просто проверить последний символ, чтобы увидеть, если это 3, 5, 8 или 0 и игнорировать его, если значение while равно 0? – andrewsi

ответ

4

Вы можете сделать это следующим образом.

Получить остаток от деления на 10, а затем проверить на 0, 3, 5 или 8.

if ($int > 0) { 
    $int = $int % 10; 
    if ($int == 0 || $int == 3 || $int == 5 || $int == 8) 
    { 
     //do stuff 
    } 
} 
+1

Или даже 'if (in_array ($ int% 10, array (0,3,5,8))) {...}' – knittl

+1

'if ($ int> 0)' должен появиться перед вычислением остатка. – Rik

+0

Спасибо! Я хотел иметь только одно утверждение. Я создал новую переменную при проверке остатка ($ new_int = $ int% 10) и добавил старую переменную в ту же оператор if ($ int> 0). – TJE

0
function check($t) { 
    $mod = $t % 10; 
    if ($mod == 0 || $mod == 3 || $mod == 5 || $mod == 8) 
     echo $t; 
} 
$arr = array(3, 6, 8, 10, 20, 13, 15, 19); 
array_map('check', $arr); 
Смежные вопросы