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


PHP- Search for string in an array, in a loop

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

例如,假设$c包含与文件$o中的变量$a匹配的所有行(在 Array 中?(,并返回包含该变量的 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("/''b$a''b/", $o(; 将匹配两行理想情况下,如果 $b= PA,第二个preg_grep会大喊:

13 56000 North Atlanta CDP PA 27812 0000000147 +33.862550

假设$o是一个行数组:

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

这将给出一个$o元素数组,这些元素与$a$b匹配