【问题标题】:PHP partial string matchPHP 部分字符串匹配
【发布时间】:2013-02-24 03:08:11
【问题描述】:

我是 PHP 新手。

我正在尝试搜索数据数组,并匹配包含部分字符串的任何项目

EX:如果用户输入“oh”,搜索将找到任何包含“oh”的项目,因此该项目可能是 John。

到目前为止,我有这个,不匹配任何东西

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

当然,一旦找到该项目,还有其他代码可以做某事。我见过很多 substr 方法和 STRPOS 函数,我只是不知道如何使它与我的代码一起工作。

【问题讨论】:

    标签: php arrays search


    【解决方案1】:

    编辑:仔细查看您的问题,您似乎正在搜索数组值中的匹配项。有一个类似于 preg_match() 的东西叫做preg_grep()

    $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 是您要匹配的正则表达式模式。

    【讨论】:

      【解决方案2】:

      您将需要使用regular expression. 在您的特定情况下,您应该遍历数组,并为每个项目使用 preg_match(如链接文章中所述)。任何匹配的项目都应该添加到另一个数组中,或者你可以用它做任何你想做的事情。

      【讨论】:

      • 我正在尝试使这个 preg_match 与我的代码一起工作,这会进入第二个 if 循环吗?
      • 根据 PHP [php.net/manual/en/function.preg-match.php]:提示如果您只想检查一个字符串是否包含在另一个字符串中,请不要使用 preg_match()。请改用 strpos() 或 strstr(),因为它们会更快。
      猜你喜欢
      • 2012-06-15
      • 2019-10-18
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2017-04-02
      • 2015-12-31
      相关资源
      最近更新 更多