2017-02-10 10 views
1

Как проверить, что php explode содержит только целые значения, разделенные запятыми.Как проверить взорвать, содержат только значения, разделенные запятой ...?

, например, у меня есть

$str= '10,20,30,40,50,60,70,80,90,100'; 
$arr = explode(',',$str); 

и я хочу, чтобы проверить, если значение в $ ул является 10,20,30 и так далее. и не может содержать строку и слова.

Я в основном заполняю выпадающее меню из этого $ arr, и я хочу проверить, вводит ли пользователь целые значения с запятой, а затем показывает выпадающее меню, если пользователь вводит какой-либо другой формат.

Я также использую is_int или is_numeric, но он не может решить мою проблему.

спасибо заранее.

+1

какая ошибка вы получаете, когда вы используете is_int или is_numeric? – WeAreRight

+0

@JoneDotosvky, если кто-то вводит $ str = '10a, 20b, 30c, 40'; он также возвращает true. –

+0

@TehseenAhmed 'is_numeric()' будет работать отлично. проверьте приведенные ниже примеры –

ответ

3

Что вы ищете является ctype_digit

$str= '10,20,30,40,50,60,70,80,90,100'; 
$arr = explode(',',$str); 
foreach($arr as $a){ 
    if(!ctype_digit($a)){ 
    //Not an int 
    }else{ 
    //is an int 
    } 
} 

Выход: - https://eval.in/734431

Ссылка: - http://php.net/ctype_digit

+1

https://eval.in/734414 –

+0

https://eval.in/734417 – Kaylined

+0

@ Кайлин, если бы я использовал букву a с $ str = '10a, 20,30,40,50,60,70,80,90,100'; он также возвращает неправильный результат. –