我有一个过滤功能,应该检查一个数组中的两个“字段”,这些是冷的名称和描述。过滤功能
我也有存储在数据库中的单词,其中过滤函数应该接受某些单词(true)并拒绝某些单词(false)。
例如: 应接受每一个帖子来包含单词车。
在其中接受了我已经存储在数据库下面的话: 汽车(显然)
不接受: 卡车 TRAKTOR 总线
所以我有一个应该去通过一个函数数组中的两个字段(名称和描述)将它们与存储在数据库中的单词相匹配,并查看这些字段是包含接受的单词还是任何未接受的单词。
我的功能看起来像这样 $ ARR =传入阵列领域名和描述。 $ a ['value'] =如果它是0,则该单词不被接受,如果它是1,则该单词被接受。 $ a ['filter'] =数据库中的单词。
function checkFilter($arr)
{
$name = strtolower($arr['name']);
$description = strtolower($arr['description']);
$dbh = $this->connect();
$rs = $dbh->prepare("SELECT * FROM filter");
$rs->execute();
$all = $rs->fetchAll();
foreach($all as $a)
{
if($a['value'] == 0 && strstr($name, strtolower($a['filter']), true))
{
return false;
break;
}
if($a['value'] == 0 && strstr($description, strtolower($a['filter']), true))
{
return false;
break;
}
if($a['value'] == 1 && strstr($name, strtolower($a['filter']), true))
{
return true;
break;
}
if($a['value'] == 1 && strstr($description, strtolower($a['filter']), true))
{
return true;
break;
}
}
return false;
}
正如你瑟我以为这里是,如果任何一个不能接受的话都显示出来我想从函数返回false,并打破。这是因为如果接受的单词在名称或说明如果未接受的单词已经存在,则无关紧要。
之后,我有一个返回false,因为如果它找不到接受的词(例如汽车),它应该被滤除。
我的问题是,这似乎并没有工作。在它进入if语句后,它似乎并没有打破这个功能。
我应该如何解决这个问题?
如果存在接受或未接受的词否定另一个的效果。我的意思是,如果接受的不被接受的词都存在,会发生什么? – TecBrat 2012-03-08 15:38:41
如果未被接受的话出现,则不应考虑接受的词。举个例子:“一辆蓝色的卡车正在开车”这里有车,但是因为卡车应该返回假。其他例子“一辆蓝色汽车正在驾驶”。这应该返回true。 – Fredrik 2012-03-08 15:41:42
如果两者都不存在,会发生什么情况。 “一辆蓝色的福特正在驾驶” – TecBrat 2012-03-08 15:59:23