0
基本上我試圖使用preg_match_all來執行多重搜索。 我有3個陣列:preg_match_all多字搜索
$searchWordBis
,其中包含要搜索的單詞。$linkArray
,其中包含字符串,這是我想要搜索的數組。$matches
,其中將包含研究結果。
我希望在$ linkArray中搜索$ searchWordBis的每個單詞。
這裏是我寫的:
for ($i = 0; $i <= count($searchWordBis)-1 ; $i++) { //loop test to do the search for each word of $searchWordBis and that way opperate a multi-words search
$fct = function($var) use ($searchWordBis) { //$fct is a "closure" (anonymous function)
return preg_match_all("/\b$searchWordBis[$i]\b/i", $var, $pregMatches);
};
$matches = array_values(array_filter($linkArray, $fct)); //filtering $matches array according to $fct + reseting index
/* Tests */
echo $searchWordBis[$i];
echo '<br>';
echo '<pre>';
var_dump($pregMatches);
echo '</pre>';
echo '<pre>';
var_dump($matches);
echo '</pre>';
/* ----- */
}
但它無法正常工作。我的代碼有什麼問題?由於
你能從哪裏獲得'$ searchWordBis [$ i]'?你在裏面得到什麼?對於你使用以下正則表達式的字符串 –
'「/ \ b $ searchWordBis [$ i] \ b/i」'應該是'「/ \ b {$ searchWordBis [$ i]} \ b/i」'? '$ i'沒有在你的關閉中定義。編輯:您的代碼格式不正確。看到我建議的更改如下: –
@Uchiha我以爲$ searchWordBis [$ i]可以用來訪問數組的$ i元素。 – Eliott