2013-02-24 139 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