2013-02-24 217 views
1

我是PHP新手。PHP部分字符串匹配

我試圖通過一組數據進行搜索,並匹配包含部分字符串的任何項目

EX:如果用戶輸入「哦」的搜索將查找包含任何項目「哦」,所以項目可能是約翰。

我有這個到目前爲止,不匹配當然任何

if(isset($_POST['firstName'])){ 
    for($i = 0 ; $i<count($studentInfo);$i++){ 
     if(strpos($firstName,$studentInfo[$i][2])) 

還有其他代碼,一旦該項目被發現做一些事情。我見過很多substr方法和STRPOS函數,我只是不知道如何使它與我的代碼一起工作。

回答

2

編輯:仔細看看你的問題,好像你正在搜索一個數組值的匹配。對於這個被稱爲preg_grep()的類似於preg_match()的東西。

$arrMatchingValues = preg_grep("/^findme/", $array); 

看看preg_match()。使用該頁面的一些示例代碼:

<?php 
$subject = "abcdef"; 
$pattern = '/^def/'; 
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); 
print_r($matches); 
?> 

$subject是您想要搜索的內容。 $pattern是您想要匹配的正則表達式模式。

0

你會想要使用regular expression.在你的具體情況下,你應該循環訪問數組,併爲每個項目使用preg_match(詳見鏈接文章)。任何匹配的項目都應該添加到另一個數組中,或者您可以隨心所欲地執行任何操作。

+0

我想讓這個preg_match與我的代碼一起工作,這會在第二個循環內進行嗎? – user1050632 2013-02-24 03:24:04

+0

按照PHP [http://php.net/manual/en/function.preg-match.php]:提示 如果您只想檢查一個字符串是否包含在另一個字符串中,請勿使用preg_match()。使用strpos()或strstr()來代替,因爲它們會更快。 – Ares 2013-02-24 03:38:03