我使用MySQL全文搜索,需要按照下面描述的方式格式化搜索结果。
在PHP或某些库函数中,获取指定的参数并返回指定的结果?
如果没有,有没有人实现类似的功能?
$needles = ['word1', 'word2'];
$haystack = 'This string contains word1. Also this string contains word2';
$wordsGap = 1; //word quantity from left and right of every in $result;
$delimiter = '...';
$result = desired_function($needles, $haystack, $wordsGap, $delimiter);
//$result must be String like '... contains word1. Also ... contains word2'
更新
我需要与此类似的结果。
http://joxi.net/BA01zg3tJ4l5Or
现在我已经' T want_function。但我需要它。我需要一个函数来获取描述的参数并返回描述的结果。
答案 0 :(得分:0)
看起来你需要使用php函数http://php.net/manual/en/function.strpos.php
答案 1 :(得分:0)
不完全确定wordsGap
和delimiter
的含义,但下面的函数会返回一个包含找到的单词的数组:
function cool_function($needles, $haystack, $wordGap, $delimiter){
$haystack = explode(' ', $haystack);
$mFinalArray = [];
foreach($haystack as $current){
foreach($needles as $currentNeedle){
if(strpos($current, $currentNeedle) !== false){
$mFinalArray[] = $currentNeedle;
}
}
}
return $mFinalArray;
}
示例:
$needles = ['word1', 'word2'];
$haystack = 'This string contains word1. Also this string contains word2';
$wordsGap = 1; //word quantity from left and right of every in $result;
$delimiter = '...';
$result = cool_function($needles, $haystack, $wordsGap, $delimiter);
输出:
Array
(
[0] => word1
[1] => word2
)
你可以在
行玩 $mFinalArray[] = $currentNeedle;
如果你想添加分隔符和wordsGap,但是从你拥有数据开始,你可以显示你喜欢的任何内容。