【发布时间】:2021-12-08 15:40:20
【问题描述】:
如果preg_match函数返回true,我想输出关联数组的key。
但不知何故,第二个 foreach 循环只返回一个键。
为什么会这样?
这是我的 php 代码:
<?php
$log = file('ab.boerse.de.access.log.2');
foreach ($log as $key => $value)
{
$result = explode(" ", $value);
echo "<pre>";
print_r($result);
echo "</pre>";
foreach ($result as $key2 => $value2)
{
echo "<pre>";
print_r($key2);
echo "</pre>";
if (preg_match("/somedata/", $value2))
{
print_r($key2);
}
else
{
break;
}
}
}
?>
这是输出的数组,下面有键“0”:
Array (
[0] => localhost
[1] => somedata
[2] => somedata
[3] => somedata
[4] => somedata
[5] => somedata
[6] => somedata
[7] => somedata
[8] => somedata
[9] => somedata
[10] => somedata
[11] => somedata
) 0
【问题讨论】:
-
您能否提供一个非常简短的输入数据示例?此外,因为您正在输出 HTML,所以您需要向我们展示这一点,而不是呈现的 HTML。在上面的示例中,您没有向我们展示 pre 标签,尽管它们是隐含的。
-
输入数据,文件中的数据是什么意思?
-
并且在 print_r 周围没有 pre 标签吗? :)
-
还是别的意思?
-
@ChrisHaas 你有第二个 foreach 的输入。输入文件并不重要。