我有一個計劃,以使從txt文件的搜索,我準備,類似這樣的txt文件內容如下PHP搜索數組多個關鍵字和排序結果
A.TXT
Amy Jefferson
Nathalie Johnson
Emma West
Donna Jefferson
Tanya Nathalie
George West
Emma Watson
Emma Jefferson
如果代碼是這樣
a.php只會
$filename = "a.txt";
$example = file($filename, FILE_IGNORE_NEW_LINES);
$searchword = 'Emma Jefferson';
$matches = array();
foreach($example as $k=>$v) {
if(preg_match("/\b$searchword\b/i", $v)) {
$matches[$k] = $v;
echo $matches[$k]."<br>";
}
}
結果只會 「艾瑪·傑斐遜」
然後,如果我使用此代碼
b.php
$filename = "a.txt";
$example = file($filename, FILE_IGNORE_NEW_LINES);
$searchword = 'Emma Jefferson';
$matches = array();
foreach($example as $k=>$v) {
$searchword2 = str_ireplace(" ", "|", $searchword);
if(preg_match("/\b$searchword2\b/i", $v)) {
$matches[$k] = $v;
echo $matches[$k]."<br>";
}
}
結果會是這樣
Amy Jefferson
Emma West
Donna Jefferson
Emma Watson
Emma Jefferson
獨特的結果,但 「艾瑪·傑斐遜」 在最後的結果
所以問題是我如何搜索艾瑪傑斐遜,結果排序是這樣的
Emma Jefferson
Emma Watson
Emma West
Amy Jefferson
Donna Jefferson
所以基本上是搜索「艾瑪·傑斐遜」整個單詞,然後再「艾瑪」,最後一個是「傑斐遜」
UPDATE 我投做這個驚慌代碼問題,但我想說在這裏感謝你的所有貢獻者不要驚慌,RomanPerekhrest,隋夢,傑爾,我的人,你們都是最棒的!
Pattygeek
嗨不要恐慌,謝謝你的迴應:)但我仍然得到那種不像我想要的,這就是我得到的艾瑪傑佛遜艾瑪沃森唐娜傑佛遜艾瑪西艾米傑弗遜,同時我想就在列表上的結果我上面寫過 – pattygeek
啊,我明白了,所以這不僅僅是比賽的數量,還是比賽的順序呢? –
是的:D那部分有點讓我困惑:D – pattygeek