Здравствуйте. Вот уже идет 3 час. Я пытаюсь выполнить простейшую задачу, найти слово из массива в строке.
Вот искомые значения в моем массиве:
key1, key2, key3, key4
Задача простая. Перебрать массив искомых значений, если слово в строке найдено вернуть true.
Я использовал strpos, mb_strpos, substr_count, mbibibstrororprorros...
если строка выглядит так: bla key1 bla bla получаю true
если строка выглядит так: key1 bla не получаю true
Простым языком, не видит первое слово.
Я читал про подстроки, про использование ===... ничего не получается.
Пожалуйста, объясните мне простым языком почему это не срабатывает и желательно, нормальный простой рабочий пример
Спасибо
strpos возвращает позицию первого вхождения... То есть, в строке key1 bla вы получаете 0, то бишь false при вашей проверке. То есть, вместо того, чтобы проверять true|false, вы должны проверять позицию вхождения, а вот уже если не найдено ничего, тогда возвращается false. Лучше приведите код, который вы написали (отредактируйте свой вопрос).
Я читал про подстроки, про использование ===... ничего не получается.
Плохо читали или плохо реализовали.
1) Где код, который не работает?
2) Как и написал Одиночка Айс, стоит учитывать что нестрогое сравнение приводит 0 к булевому false, соответственно нулевая позиция (надеюсь не стоит объяснять что индексы в строке начинаются с нуля?) в строке будет найдена, но интерпретирована как false, что скорее всего и происходит у вас.