Как правильно приводить к нижнему регистру и сравнивать?

Есть несколько текстовых переменных.
$str1 = "Газпром подает газ для Европы через Украину в объеме 29,3 млн куб. м через Суджу";
$str2 = "ВкусВилл не будет проводить IPO в 2023 году";
$str3 = "Ford vs. GM: A tale of two automakers";

Мне нужно эти строки переформатировать в нижний регистр и сравнивать с массивом слов. Делаю так с каждой строкой:
$tags = [["газпром","oil","russia","Газпром"],
        ["япония","all","japan","all"], ["вкусвилл","potreb","russia","ВкусВилл"], ["ford","auto","usa","Ford"], ["tech ","tech","all","all"]];

        for($t = 0; $t < count($tags); $t++) {
            $pos = strpos(mb_strtolower($str1), $tags[$t][0]);
            if($pos !== false) {
                // выполнить условие
            }
        }

В итоге, все строки в нижний регистр переводятся, но условие срабатывает лишь на латинице с переменной $str3.
$str2 и $str1 возвращают почему-то false и условие не выполняется в итоге, хотя в массиве $tags нужные слова есть.
Я предполагаю, что из-за кодировки или языка проблемы. 2-ой параметр кодировки в функцию mb_strtolower добавлял со значением UTF-8 - но результат не изменился.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну что-ж вы так убиваетесь!? Вы же так никогда не убьётесь!


if (mb_stripos($str1, $tags[$t][0]) !== false) {
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы