我在让foreach循环正常工作时遇到问题。在值匹配后中断foreach之后,它似乎没有遍历数组的其余部分。
如果我将elseif块排除在内部,则按预期工作。使用elseif以及是否具有中断2,$ ipaddr的值不会改变。
foreach循环是否处于while循环内,会导致foreach循环重置或重新开始?
我尝试使用Break and Continue,但它们似乎无济于事。
while ( $row = sqlsrv_fetch_array($sqlquery, SQLSRV_FETCH_ASSOC) ) {
echo "<tr><td>"
foreach ($query['result']['nat']['rules'] as $value) {
foreach ($value as $data) {
$daddr = substr($data['destination']['member'], 4);
$ipaddr = str_replace("host_","",$data['destination-translation']['translated-address']);
if ( ( array_key_exists('destination-translation', $data))) {
if ($daddr == $row['VIP/NAT']) {
echo "<td>" . $daddr . "</td><td>" . $ipaddr . "</td><td>" . "STATIC" . "</td></td>";
}
else {
echo "<td> </td><td>" . $ipaddr . "</td><td> </td></tr>";
break 2;
}
}
}
}
}