2012-09-18 174 views
-2

我有下面的代碼:比賽的話

$string = "hello to all world"; 
$strings_compare = tomorrow, hello, world; 
$string_arrays =split(',',$strings_compare); 

     for ($i=0; $i<count($string_arrays); $i++){ 
      $resultado = preg_match("/$string_arrays[$i]/",$string); 
      if($resultado == false){ 
      echo "no match";    
      }else { 
      echo "match"; 
      } 
     } 

在這段代碼的結果是: 不匹配,匹配,不匹配

,結果應該是:不匹配,匹配並匹配。我的錯誤是什麼?

如果我改變$string$string='say hello to all world now' 結果匹配,匹配,匹配,這是行。

+2

陣列()()...'陣列( 「明天」, 「你好」, 「世界」)'。另外,將'preg_match(「/ $ string_arrays [$ i] /」,$ string);'更改爲'preg_match(「/".{$ string_arrays [$ i]}。」/「,$ string);' – jeremy

+0

I我已經更新了我的代碼..謝謝 – cabita

+0

你已經使它更壞了 – jeremy

回答

1

它工作正常的我。

<?php 
$string = "hello to all world"; 
$string_arrays = array("tomorrow", "hello", "world"); 

for ($i=0; $i<count($string_arrays); $i++) { 
    $resultado = preg_match("/$string_arrays[$i]/",$string); 
    if(!$resultado) { 
     echo "no match";    
    } else { 
     echo "match"; 
    } 
} 

返回

無不是matchmatchmatch

+0

你有權利,preg_match函數不是錯誤,但爲什麼我的錯誤在這:$ strings_compare = tomorrow,hello,world; $ string_arrays = split(',',$ strings_compare); ???我看不到它。 – cabita

+0

閱讀手冊...這不是一個數組。 – jeremy

+0

好的,非常感謝。你的幫助對我來說非常有用。我將回顧一下如何在數組中轉換$ string_arrays,再次感謝。 – cabita

0

試試這個:

$resultado = preg_match("/".preg_quote($string_arrays[$i])."/",$string); 

另外:當我使用的是有效的數組語法

$string_arrays = array("tomorrow", "hello", "world");