Правильный синтаксис для сопоставления строки внутри переменной с массивом - PullRequest
2 голосов
/ 30 мая 2010

У меня есть переменная, $var, которая содержит строку символов, это динамическая переменная, которая содержит значения из входных данных.

$var может быть 'abc' или $var может быть 'blu',

Я хочу сопоставить строку внутри переменной с массивом и вернуть все совпадения.

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

Какой правильный синтаксис для написания кода в php, мой грубый код ниже

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

Я пытался ставить кавычки и избегать слэшей, но пока безуспешно. Любое предложение?

ТИА

Ответы [ 2 ]

2 голосов
/ 30 мая 2010

Попробуйте

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

Шаблоны для PCRE должны быть заключены в разделители .

Конечно, вы должны настроить шаблон в зависимости от ваших потребностей. Например. если вы хотите сопоставить все строки в массиве, которые начинаются со строкой в ​​$var, вы должны изменить ее на:

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

И так далее ...

1 голос
/ 30 мая 2010
$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"
}
...