【问题标题】:PHP string function for formatting search result用于格式化搜索结果的 PHP 字符串函数
【发布时间】:2017-04-25 23:13:48
【问题描述】:

我正在使用 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

现在我还没有想要的函数。但我需要它。我需要一个函数来获取描述的参数并返回描述的结果。

【问题讨论】:

标签: php string search formatting


【解决方案1】:

【讨论】:

  • 嗨。我已经更新了我的问题,所以现在任务更清楚了。
【解决方案2】:

不太清楚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,但是从你有数据的那一刻起,你可以显示任何你喜欢的东西。

【讨论】:

  • 嗨。我已经更新了我的问题,所以现在任务更清楚了。
  • 这对我来说还不够清楚。也许可以用一个真实的例子来更新你的问题。真实的输入,真实的预期输出以您想要的方式。另外,现在你有一个返回你需要的函数..
猜你喜欢
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多