我有一个计划,以使从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