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

これをTyr

$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 に答える
0

私はあなたの機能をテストしましたsearch_results("hi there");で、ここで完全に実行されました。問題はありません。期待どおりに得た結果は次のとおりです。

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