2011-12-04 108 views
-3

我正在尋找PHP preg_match打出多面搜索字符串。PHP preg_match多面搜索字符串

示例性搜索輸入: 雪佛蘭浩城市:西雅圖顏色:沙漠沙丘容量:7個

  • 搜索條件:雪佛蘭浩
  • 城市小面:西雅圖
  • 顏色面:沙漠沙丘
  • 容量方面:7

搜索標準將始終在輸入字符串中第一個...但是e方面可以互換。

+3

你嘗試過什麼?你期望什麼產出?你得到了什麼輸出? – abcde123483

+0

試圖通過稍微改變其格式來使輸入更「可解析」將是一個好主意。 – Jon

回答

0

試試這個。它應該工作。

$criteria = ''; 
$facets = array(); 
foreach (explode(' ' , $input) as $word) { 

    // This word is a facet 
    if (strpos($word, ':')) { 
     list($facet_name, $facet_criteria) = explode(':', $word, 1); 
     $facets[$facet_name] = $facet_criteria; 

    // This word is a search criteria 
    } else { 
     $criteria .= $word . ' '; 
    } 

} 

輸入($input值):

chevy tahoe city:seattle color:desert dune capacity:7 

輸出:

$criteria: chevy tahoe dune 

$facets: Array (
    [city] => seattle 
    [color] => desert 
    [capacity] => 7 
) 
+0

這描述了一種查看可能的解決方案的不同方法。我需要稍微調整一下你的答案以允許多個單詞方面......但是,你的答案肯定有幫助。謝謝 – tomwag