2016-07-12 3 views
1

У меня есть символ, и мне нужно проверить, находится ли он в заданном диапазоне, то есть между «А» и «F».Как проверить, находится ли символ в диапазоне символов?

Конечно, я мог бы сделать

if ($c == 'A' || $c == 'B' || ..) 

, но это ужасно.

Любые предложения?

+0

Вы можете использовать код ASCII с знаками меньше и больше, чем знак для этого –

+3

'if (in_array ($ c, range ('A', 'F')))' –

ответ

2

Вы можете использовать ord(), чтобы получить порядковый номер кода ASCII символов:

if (ord($c) >= ord('A') && ord($c) <= ord('F')) { 
    echo "Character is in range." 
} 

Обратите внимание, что это только «верхний регистр А до верхнего регистра F». Для нечувствительности к регистру используйте strtoupper($c), где вы видите $c.

+0

спасибо, не знал of ord() – gbalduzzi

+0

Без проблем, рад помочь! :) – Will

+0

Если проблема решена, пожалуйста, примите ответ, чтобы вопрос был помечен как ответ. – Will

1

Вы можете преобразовать символ в его порядковое значение и проверить его целочисленный диапазон. Например, if (ord($c) >= ord('A') && ord($c) <= ord('F'))

Смежные вопросы