Есть строка, которую надо пороверить на соответствие. Есть массивы, в которых есть допустимые первое, второе, третье слова в строке. Вот код: Код (PHP): <?php $1word = array("Message", "Text", "Alert"); $2word = array("Hello", "Hi", " Goodbye"); $3word = array("Friend", "My Firend", "Dear Friend"); $some_str = "Message: Hello Friend"; $some_str2 = "Alert: Hi My Friend; if (есть случайное определенное соответствие массивам) { выполнить действие; } elseif (есть соответствие) { Выполнить действие; } // и т.д. else { print " Error"; } ?> Как это сделать?
какой именно строка? на соответствие чему, с чем? или это ребус? Добавлено спустя 24 минуты 47 секунд: ну сначала надо сложить эти массивы, при помощи array_merge, а потом при помощи strpos определить, есть ли совпадения или нет.
Код (PHP): $str = "Alert: Hi My Friend"; $arr1 = array("Message", "Text", "Alert"); $arr2 = array("Hello", "Hi", " Goodbye"); $arr3 = array("Friend", "My Firend", "Dear Friend"); $arr = array_merge($arr1, $arr2, $arr3); foreach($arr as $word) { if (strpos($str,$word) !== false) echo "<div>{$word}</div>"; }
Извините если не по теме, похожий случай. допустим есть массив и строка PHP: $a = array("haystack", "needle", "и т.д."); $text = "Возвращает подстроку строки haystack начиная с первого вхождения needle (и включая его) и до конца строки haystack."; Как мне найти что то одно из массива $a в строке $text
что значит одно? Есть массив со значениями и есть один текст и нужно найти в тексте хотя бы одно значение из массива?
Сделал примерно так: PHP: <?php $needle = "ключ1, ключ2, ключ3"; ?> // Сам текст хранится в $ttt (тут очень много текста, которые также вытаскиваются в цикле foreach) <?php foreach ($ttt as $k=>$val){ $temp = explode(',',$needle); foreach ($temp as $key=>$v){ $haystack = $val['a_body']; $pos = strripos($haystack, $v); if ($pos === false) { //echo "К сожалению, ($needle) не найдена в ($haystack)"; } else { echo "Поздравляем!\n"; echo "Последнее вхождение ($needle) найдено в (".wtf($haystack, 1).") в позиции ($pos)\n"; } } }