0

我编写了一个函数来在我的数据库中搜索。我想消除单词之间不必要的空格,所以我使用了 preg_split。我之前没有使用过 preg split,所以我使用 print_r 来查看它是否做了我希望它做的事情(消除空格)。然而,当我使用 print_r 在搜索中键入单词后,我的屏幕上什么也没有显示数组。

function search_results($keywords){
    $returned_results = array();
    $where = "";

    $keywords = preg_split('/[\s]+/', $keywords);
    print_r($keywords);

}

如果有人能给我一个关于我做错了什么的想法或更好的建议,我将不胜感激。

4

3 回答 3

1

你的正则表达式没有任何匹配,这就是你没有得到任何数组的原因。试试这个:

 $keywords = preg_split("/\\s/", $keywords);
于 2012-10-10T07:17:06.617 回答
0

我测试了你的功能,search_results("hi there");它在这里完美运行,没有问题。这是我按预期得到的结果:

Array
(
    [0] => hi
    [1] => there
)
于 2012-10-10T07:24:50.440 回答
0

提尔这个

$base_str = "this    is a   string  with multiple    spaces between  some words.            "; 


$start = microtime(1); 
for ($i=0; $i<100000; $i++){ 
    $string = $base_str; 
    while(strpos($string, '  ') !== false) 
    { 
         $string = str_replace('  ', ' ', $string); 
    } 
} 

echo $string;
于 2012-10-10T07:36:59.720 回答