2012-11-24 75 views
0

假如我PHP的preg_match的言語有array ("things and stuff", "the stuff");,我通過遍歷每個元素到另一個陣列中的每個元素進行比較 - 假設第二陣列是("stuff the blah", "stuff and things to do");在切換順序

我想preg_match什麼,一般是相關 - 我需要它匹配單詞相同的元素,即使它們的位置已更改 - 本質上我希望"the stuff"匹配"stuff the..."在這種情況下。

這是什麼最好的方法呢?

+0

這與preg_match沒有任何關係,我建議將問題改爲如下所示:我有兩個字符串數組,我想從兩個數組中找到包含至少一個常用單詞的字符串對。 – AndreKR

+0

使用'explode'將字符串轉換爲數組,然後使用'array_intersect'來檢查它們是否包含相同的單詞。 – Barmar

+0

看到我的例子就像@Barmar所說的。 – SubRed

回答

0

你可以簡單地分割你的第一個數組的字符串與第二陣列中的所有字符串值,這裏的例子來比較:

$array1 = array("things and stuff", "the stuff"); 
$array2 = array("stuff the blah", "stuff and things to do"); 

$result = array(); 

foreach($array1 as $val1){ 

    $words1 = explode(" ", $val1); 

    $result[$val1] = 'not found'; 

    foreach($array2 as $val2){ 

     $words2 = explode(" ", $val2); 
     $intersect = array_intersect($words1, $words2); 
     $diff = array_diff($words1, $intersect); 

     if(empty($diff)) 
      $result[$val1] = 'found'; 
    } 
} 

var_dump($result); 

參考文獻: