php 2 个 foreach 循环
php 2 foreachloops
我想输出关联数组的key,如果preg_match函数returns为真
但不知何故,第二个 foreach 循环 returns 只是一个键。
为什么会这样?
这是我的 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
第一项的值为 localhost
而不是 somedata
,因此正则表达式不匹配任何内容,它会执行结束第二个 foreach 的中断。如果您想跳过不需要的项目,请尝试使用 continue
而不是 break
。 continue
仅终止循环的当前迭代并继续下一项。
我想输出关联数组的key,如果preg_match函数returns为真
但不知何故,第二个 foreach 循环 returns 只是一个键。
为什么会这样?
这是我的 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
第一项的值为 localhost
而不是 somedata
,因此正则表达式不匹配任何内容,它会执行结束第二个 foreach 的中断。如果您想跳过不需要的项目,请尝试使用 continue
而不是 break
。 continue
仅终止循环的当前迭代并继续下一项。