我有一個過濾功能,應該檢查一個數組中的兩個「字段」,這些是冷的名稱和描述。過濾功能
我也有存儲在數據庫中的單詞,其中過濾函數應該接受某些單詞(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