【问题标题】:Correct syntax for matching a string inside a variable against an array将变量内的字符串与数组匹配的正确语法
【发布时间】:2010-05-30 18:20:46
【问题描述】:

我有一个变量$var,它包含一个字符串,这是一个包含输入值的动态变量。

$var 可以是'abc',或者$var 可以是'blu'

我想将变量内的字符串与数组进行匹配,并返回所有匹配项。

$array = array("blue", "red", "green");

用php写代码的正确语法是什么,我的粗略代码如下

$match = preg_grep($var, $array); (incorrect syntax of course)

我尝试添加引号和转义斜杠,但到目前为止没有运气。有什么建议吗?

TIA

【问题讨论】:

  • 那么,您想要完全匹配还是部分匹配?为什么不给出输入数据的工作示例?

标签: php regex pcre


【解决方案1】:

试试

$match = preg_grep('/' . $var . '/', $array);

Patterns for PCREs 必须包含在 delimiters 中。

当然,您必须根据需要调整模式。例如。如果您想将数组中 start 中的所有字符串与$var 中的字符串匹配,则必须将其更改为:

$match = preg_grep('/^' . $var . '/', $array);

等等……

【讨论】:

    【解决方案2】:
    $var = 're';
    
    $array = array("blue", "red", "green");
    
    $pattern = '/'.$var.'/';
    
    $matches = preg_grep($pattern, $array);
    
    echo '<pre>';
    var_dump($matches);
    echo '<pre>';
    

    返回

    array(2) {
      [1]=>
      string(3) "red"
      [2]=>
      string(5) "green"
    }
    

    【讨论】:

    • 感谢
       标签示例,我一直在使用 print_r 进行调试,并且一直想知道数组的在线示例是如何格式化的。
    • 重新。
       标签...第二个应该是 
      :-(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2020-12-17
    • 2020-04-06
    相关资源
    最近更新 更多