我有一个变量$var
,它包含一串字符,这是一个包含输入值的动态变量。
$var
可以是'abc'
,或$var
可以是'blu'
,
我想将变量中的字符串与数组匹配,并返回所有匹配项。
$array = array("blue", "red", "green");
在php中编写代码的正确语法是什么,我的粗略代码在
下面$match = preg_grep($var, $array); (incorrect syntax of course)
我试图把引号和逃避斜线,但到目前为止没有运气。有什么建议吗?
TIA
答案 0 :(得分:2)
尝试
$match = preg_grep('/' . $var . '/', $array);
Patterns for PCREs必须附在delimiters中。
当然,您必须根据需要调整模式。例如。如果您想将开始的数组中的所有字符串与$var
中的字符串匹配,则必须将其更改为:
$match = preg_grep('/^' . $var . '/', $array);
等等......
答案 1 :(得分:1)
$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"
}