вопрос по массиву и поиску ключевых слов

sarkis

Профессор
Регистрация
27 Фев 2014
Сообщения
248
Реакции
40
здравствуйте ...Сделал след.код :
сам массив -
Код:
$cats = array (
"abissin"=> array("a" => "абиссин", "b" => "Абиссинская"),
"aziat"=> array("a" => "азиат", "b" => "Азиатская"),
"american"=> array("a" => "америка", "b" => "Американская"),
"bobteil"=> array("a" => "бобт", "b" => "Бобтейл"),
"angora"=> array("a" => "ангор", "b" => "Ангорская"),
"ashera"=> array("a" => "ашер", "b" => "Ашера"),
"baliskaya"=> array("a" => "балий", "b" => "Балийская"),
"soukok"=> array("a" => "соук", "b" => "Соукок"),
"bengal"=> array("a" => "бенгал", "b" => "Бенгальская"),
"birm"=> array("a" => "бирм", "b" => "Бирманская"),
"tai"=> array("a" => "тай", "b" => "Тайская"),
"bombeyska"=> array("a" => "бомб", "b" => "Бомбейская"),
"brazil"=> array("a" => "бразил", "b" => "Бразильская"),
"toyger"=> array("a" => "тойг", "b" => "Тойгер"),
"kerl"=> array("a" => "керл", "b" => "Кёрл"),
"britan"=> array("a" => "британ", "b" => "Британская"),
"burmilla"=> array("a" => "бурм", "b" => "Бурмилла"),
"Burmanska"=> array("a" => "бурма", "b" => "Бурманская"),
"Gavanna"=> array("a" => "гаван", "b" => "Гавана браун"), 
"Tonkinskaya"=> array("a" => "тонкин", "b" => "Тонкинская"),
"Reks"=> array("a" => "рекс", "b" => "Рекс"),
"gimalay"=> array("a" => "гимал", "b" => "Гималайская"),     
"sfinks"=> array("a" => "сфин", "b" => "Сфинкс"),
"keltsk"=> array("a" => "кельт", "b" => "Кельтская"),
"mist"=> array("a" => "мист", "b" => "Мист"),
"ussury"=> array("a" => "уссур", "b" => "Уссури"), 
"egipetsk_mau"=> array("a" => "египе", "b" => "Египетская мау"),
"york"=> array("a" => "йорк", "b" => "Йоркская"),
"shartrez"=> array("a" => "шарт", "b" => "Шартрез"),
"ceylon"=> array("a" => "цейлон", "b" => "Цейлонская"),
"ekzot"=> array("a" => "экзот", "b" => "Экзотическая"),
"yavanez"=> array("a" => "яван", "b" => "Яванез"),
"kalifor"=> array("a" => "калифор", "b" => "Калифорнийская"),
"kanani"=> array("a" => "канаа", "b" => "Канаани"),
"kimrik"=> array("a" => "кимр", "b" => "Кимрик"),
"li_hua"=> array("a" => "хуа", "b" => "Ли Хуа"),
"korat"=> array("a" => "корат", "b" => "Корат"),
"la_perm"=> array("a" => "перм", "b" => "Ла перм"),
"mandalay"=> array("a" => "мандал", "b" => "Мандалай"),
"manks"=> array("a" => "манк", "b" => "Манкс"),
"main_kun"=> array("a" => "мейн", "b" => "Мейн-Кун"),
"nibelung"=> array("a" => "нибел", "b" => "Нибелунг"),
"norvegh"=> array("a" => "норвеж", "b" => "Норвежская"),
"orient"=> array("a" => "ориент", "b" => "Ориентальная"),
"ociket"=> array("a" => "оцик", "b" => "Оцикет"),
"ohos_azules"=> array("a" => "охос", "b" => "Охос Азулес"),
"pers"=> array("a" => "перс", "b" => "Персидская"),
"peterbold"=> array("a" => "петер", "b" => "Петерболд"),
"piksibob"=> array("a" => "пикси", "b" => "пиксибоб"),
"ragamafin"=> array("a" => "рагам", "b" => "Рагамаффин"),
"golubaya"=> array("a" => "голуб", "b" => "Русская голубая"),
"regdoll"=> array("a" => "регд", "b" => "Регдолл"),
"Savanna"=> array("a" => "саван", "b" => "Саванна"),
"siam"=> array("a" => "сиам", "b" => "Сиамская"),
"sibir"=> array("a" => "сибир", "b" => "Сибирская"),
"singapura"=> array("a" => "синг", "b" => "Сингапура"),
"skottish"=> array("a" => "скот", "b" => "Скоттиш"),
"snow_shu"=> array("a" => "сноу", "b" => "Сноу-шу")

);

основной текст , в котором ищутся ключевые слова :
Код:
$text='Сегодня продаю  кельтского  и персидского  кота  и Сибирская кошка со  всеми документами, прививками и хорошим характером.';

и сам поиск
Код:
foreach($cats as $poroda) 
        {
 
         
                            $result = strpos(mb_strtolower($text), $poroda['a']);
                            if($result==true){
                                echo"найдено Ключевое слово <b>$poroda[a]</b> ,которые соответсвуют категории <b>$poroda[b]</b><br>";
                                break;
                            }
                            else{  echo "ничего не найдено";break;}
                     
        }


по результатам поиска , должно выводить первое совпавшее ключевое слово.. Если убрать строку с else, то все хорошо ..Но как только я ее поставил, то сразу выводит только ее результат ..Подскажите , в чем может быть неточность ?
 
из под else {} уберите break;
Break - выход из цикла. Если код более сложный, то вместо break напишите continue;
 
из под else {} уберите break;
Break - выход из цикла. Если код более сложный, то вместо break напишите continue;
смотрите , если даже я уберу везде break; то потом выводится одновременно текст при $result==true и else
 
скрин результата
 

Вложения

  • вывыв.PNG
    вывыв.PNG
    52,6 KB · Просмотры: 3
PHP:
foreach($cats as $poroda) 
        {
                                      if(strpos(mb_strtolower($text), $poroda['a'])){
                                echo"найдено Ключевое слово <b>$poroda[a]</b> ,которые соответсвуют категории <b>$poroda[b]</b><br>";
                                break;
                            }
                            else{  echo "ничего не найдено";break;}
        }
 
PHP:
foreach($cats as $poroda)
        {
                                      if(strpos(mb_strtolower($text), $poroda['a'])){
                                echo"найдено Ключевое слово <b>$poroda[a]</b> ,которые соответсвуют категории <b>$poroda[b]</b><br>";
                                break;
                            }
                            else{  echo "ничего не найдено";break;}
        }


так тоже пробовал ..В результате выводить значениe else{ echo "ничего не найдено";break;}
 
Не понял сути задачи сразу...

PHP:
foreach($cats as $poroda) 
        {
                                      if(strpos(mb_strtolower($text), $poroda['a'])){
                                echo"найдено Ключевое слово <b>$poroda[a]</b> ,которые соответсвуют категории <b>$poroda[b]</b><br>";
                                break;
                            }
        } 
echo "ничего не найдено";
 
тоже неверно ...
тут как должно быть : если true при поиске , то выводит текст , если false,то "ничего не найдено"
 
Тогда вот так.
PHP:
$ txt = "ничего не найдено";
foreach($cats as $poroda)
        {
                                      if(strpos(mb_strtolower($text), $poroda['a'])){
                               $ txt = "найдено Ключевое слово <b>$poroda[a]</b> ,которые соответсвуют категории <b>$poroda[b]</b><br>";
                                break;
                            }
        }
echo $txt;
 
Назад
Сверху