Найти точное значение в строке

156
30 января 2020, 07:30

Есть строка с числами. Каждое значение разделено запятыми.

Найти 21 в строке 12,33,32,443,21,335 можно было бы простым поиском, но цифры не уникальны и могут повторяться, к примеру:

   $int = '26,499,838,221';
   if(stristr($int, '21') == TRUE) {
     echo '21 найдено';   
   }

Найдет не 21, а 21 в 221. Как решить проблему? Использовать explode и проверять каждое значение?

Answer 1

Используйте регулярные выражения:

$need = 21;
$str = '26,499,838,221';
if (preg_match("~\b{$need}\b~", $str)) {
    echo "Найдено $need";
}

Если точно известно, что числа разделены только запятой, то можно и с помощью explode():

$need = 21;
$str = '26,499,838,221';
if (in_array($need, explode(',', $str))) {
    echo "Найдено $need";
}
READ ALSO
Ошибка при запросе в базу данных PDO PHP

Ошибка при запросе в базу данных PDO PHP

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: mode must be an integer in C:\OSPanel\domains\WorkLeader\app\models\Adminphp on line 55 ( ! ) PDOException: SQLSTATE[HY000]: General error: mode must be an integer in C:\OSPanel\domains\WorkLeader\app\models\Admin

147
Компиляция библиотеки в корне проекта [дубликат]

Компиляция библиотеки в корне проекта [дубликат]

Как в линуксе можно скомпилировать программу с библиотекойso, чтобы при запуске программы, она использовала библиотеку, которая лежит в том...

164
множественное определение в c++

множественное определение в c++

Есть такой файл заголовок(header)

129