2012-04-08 2 views
0
<?php 
$a[0]["streamtitle"]= "SEM-VI"; 
$a[1]["streamtitle"]= "CE"; 
$a[2]["streamtitle"]= "B.E."; 


$b[0]["streamtitle"] = "SEM-VI,CE,B.E."; 
$b[1]["streamtitle"] = "SEM-VII,CE,B.E."; 
$b[2]["streamtitle"] = "SEM-VIII,CE,B.E."; 
$b[3]["streamtitle"] = "SEM-VI,EC,B.E."; 
$b[4]["streamtitle"] = "SEM-VI,CE,B.E."; 

$i=0; 
for($i=0; $i<sizeof($b); $i++) { 
    if (strstr($b[$i]["streamtitle"], $a[0]["streamtitle"]) && strstr($b[$i]["streamtitle"], $a[1]["streamtitle"]) && strstr($b[$i]["streamtitle"], $a[2]["streamtitle"])) 
     print "found ".'</br>'; 
    else 
     print "not found".'</br>'; 
} 

?>Соответствие подстроки в строке

Привет всем, Я фильтрование значение из массива $ B, который имеет значение такой же, как $ а. Вышеприведенный код работает нормально некоторое время, но не работает, когда я предоставляю SEM-V. Когда я принимаю

$a[0]["streamtitle"]= "SEM-V"; 
$a[1]["streamtitle"]= "CE"; 
$a[2]["streamtitle"]= "B.E."; 

он соответствует четыре элемента из $ B, поскольку каждая строка содержит 'SEM-V' в качестве подстроки и CE, B.E. Кроме того, общие, не имеет значения, это SEM-V, SEM-VI, SEM-VIII и т.д ....

Пожалуйста, предложите мне некоторое представление о том, чтобы соответствовать 'СЭМ-V' только ....

ответ

1

Если формат streamtitle всегда использует запятые в качестве разделителя, вы можете сопоставить «SEM-V» вместо «SEM-V».

Другие варианты включают взлёт streamtitle и проверку различных частей.

$parts = explode(",", $b[1]["streamtitle"]); 
if($parts[0] == $a[0]["streamtitle"] 
    && $parts[1] == $a[1]["streamtitle"] 
    && $parts[2] == $a[2]["streamtitle"]) 
{ 
    print "found<br />"; 
} 
else print "not fond<br />"; 
+0

+1 но попробуйте и покажите ему, как он будет вставлять это в свой код – Baba

+0

ok..i получил его .. не нужно показывать код..thanks –

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