<?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>';
}
&GT;
大家好, 我正在过滤数组$ b中的值,其值与$ a相同。 上面的代码工作正常,但是当我给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等......
请建议我一些想法只匹配'SEM-V'......
答案 0 :(得分:1)
如果streamtitle的格式总是使用逗号作为分隔符,则可以匹配&#34; SEM-V,&#34;而不是&#34; SEM-V&#34;。
其他选项包括爆炸标题和检查不同部分。
$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 />";