PHP-在循环中搜索数组中的字符串

时间:2014-12-11 22:55:22

标签: php regex

我想要做的是搜索包含的文件;多行空格分隔的单词和字符,在多行上,使用preg_grep,包含某个字符串,并存储为变量。我想然后" for循环"通过这些匹配的行,并搜索另一个字符串。

为了便于举例,假设$c包含与变量$a匹配的所有行(在数组中?),在文件$o中,并返回包含该变量的9行。怎么

$c = preg_grep("/\b$a\b/", $o);

所以我设置$max = sizeof($c)

$max = sizeof($c);     // In this example contains 9

在这里,我尝试遍历$c以查找变量$b,并希望打印匹配的行

for ($i = 0; $i < $max; $i++) {
    $st = preg_grep("/\b$b\b/", $c);
    echo implode($st, ' ');
}

在第一次搜索中,如果我回显implode($c, ' '),我将所有9个值显示为一个实心字符串。虽然在我的循环之后使用相同的技术,但我没有得到我想要的结果,这是由匹配两个变量产生的单行。

此外,我知道可能有更简单的方法来实现这一目标,但是按照这个例子,我在哪里犯了错误。

修改的 如果有帮助,请提供文本文件的样本:

13 04000 Atlanta city GA 394017 +33.762900 -08.4422592
13 56000 North Atlanta CDP PA 27812 0000000147 +33.862550

其中$ c = preg_grep(&#34; / \ b $ a \ b /&#34;,$ o);会匹配两条线 理想情况下,如果$ b = PA,那么第二个preg_grep就会出现:

13 56000 North Atlanta CDP PA 27812 0000000147 +33.862550

1 个答案:

答案 0 :(得分:2)

假设$o是一个行数组:

$result = preg_grep("/\b$b\b/", preg_grep("/\b$a\b/", $o));
echo implode(" ", $result);

这将为$o提供一系列与$a$b匹配的元素。