2014-04-04 94 views
2

嗨! 我想在數組$行中搜索具有類似「CMS」的值的字符串,下面的代碼正在搜索確切的「CMS」。如何在PHP中使用數組搜索字符串值?

if (mysql_num_rows($sql_result)>0) 
    { 
    while ($row = mysql_fetch_assoc($sql_result)) 
     { $counter++; 
      if (in_array("CMS", $row)) 
       { $cms++; } 
      } 
    } 

,我會很感激,如果任何人能指導我如何搜索字符串值像數組$行「CMS」。

+0

將更加有用使用SQL來計算您的數據。 – Barif

+0

你最好用sql做這個工作,但不要在php一邊。 – xdazz

+0

[使用PHP篩選類似於SQL LIKE'%search%'的數組中的值的重複項](http://stackoverflow.com/questions/5808923/filter-values-from-an-array-similar-to-sql樣,搜索使用的PHP) – MSadura

回答

2

使用strposserialize

if (mysql_num_rows($sql_result)>0) 
    { 
    while ($row = mysql_fetch_assoc($sql_result)) 
     { $counter++; 
      if (strpos(serialize($row),"CMS")!==false) //<--- Changed this `if` statement, nothing else 
       { $cms++; } 
      } 
    } 

你可以serialize您的數組,然後做一個strpos檢查needle是否是數組或內部沒有。這與您按要求執行LIKE類似。

0

遍歷各行中的列,並使用strpos

if (mysql_num_rows($sql_result)>0) 
{ 
    while ($row = mysql_fetch_assoc($sql_result)) 
    { 
     $counter++; 
     foreach($row as $column) 
     { 
      if (strpos($column, 'CMS')) 
      { 
       $cms++; 
      } 
     } 
    } 
} 
0
if (mysql_num_rows($sql_result)>0) 
    { 
    while ($row = mysql_fetch_assoc($sql_result)) 
     { $counter++; 
      foreach ($row as $column) { 
       if (strpos($column, "CMS") !== false) { 
        $cms++; 
       } 
      } 

     } 
    } 
相關問題