2015-02-20 3 views
0

Я пытаюсь найти строку с более чем одним термином, и если она будет найдена, то относительный термин будет эхом для переменной, которую я могу использовать, на данный момент это просто эхо последняя категория, независимо от того, что он считает, что:Как получить результаты поиска от строки до переменной эха

//Page info 

$PageTitle = "audio"; 

$search_for = array('Electrical Serviceh' => 'electrical, audio, electrician, security', 'Plumbing Servicey' => 'heating, gas'); 
foreach ($search_for as $name=>$term){ 
if (strpos($PageTitle,$term) !== false){ 
echo $name; 

} 
} 

echo $name; 

необходимо, чтобы иметь возможность использовать переменную, выдаваемый в любом месте на странице, вторя его.

+0

Если вы всегда повторяете последнюю категорию, не означает ли это, что strpos не возвращает false? Поэтому в '$ term' найдено' $ PageTitle'. Может быть, вам следует повторить заголовок страницы, чтобы увидеть, всегда ли вы передаете то же самое в этот цикл foreach. – Kacy

+0

пробовал его в базовой форме, он должен выводить «electric serviceh» – alwayslearning

+0

@david Я попробовал, и он ничего не выводит, говоря, что strpos() всегда была ложной. Поэтому я попытался поставить целую строку «электрическая, аудио, электрик, безопасность» в $ PageTitle, и она работала, как ожидалось. Это говорит мне, что foreach не нарушает условия поиска до отдельных частей. – BigScar

ответ

1

Получил его на работу. Я переопределил массив и добавил второй цикл foreach

<?php 
    //Page info 
    $PageTitle = "Johnson electrician"; 
    $search_for = 
    array('Electrical Serviceh' => array('electrical', 'audio', 'electrician', 'security'), 'Plumbing Servicey' => array('heating', 'gas')); 
    foreach ($search_for as $name=>$term){ 
     foreach ($term as $findme) 
     { 
      if (strpos($PageTitle,$findme) !== false) 
      { 
      echo $name; 
      } 
     } 
    } 
    ?> 
+0

ваш потрясающий BigScar бил в этом всю ночь, только что вернулся на ваш пост, спасибо. Отлично сработано. просто открыл мир понимания и возможностей для меня, не могу поблагодарить вас достаточно – alwayslearning

+0

вы сделали его настолько умным и простым спасибо! – alwayslearning

+0

, пытаясь сделать последнее, что работало на моем последнем шаге с одиночными значениями: http://codepad.viper-7.com/vowaKO, но теперь вы можете ввести несколько значений, которые вы получите, когда вы произнесете его непосредственно: http: //codepad.viper-7.com/38sRBX. Поэтому я попытался сделать то же самое с вашим новым кодом, чтобы он выводил на переменную, которую я могу использовать, но не удается: http://codepad.viper-7.com/9b4q3t – alwayslearning

Смежные вопросы