У меня проблема с корректной работой циклов foreach.После выхода из foreach после совпадения значения он, похоже, не выполняет итерацию по остальной части массива.
Если я возьму блок elseif изнутри, если он работает как положено.При использовании elseif и с разрывом 2 или без него значение $ ipaddr не изменяется.
Вызывает ли цикл foreach, находящийся внутри цикла while, цикл foreach для сброса или запуска заново?
Я пытался использовать перерыв и продолжить, но, похоже, они не помогают.
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;
}
}
}
}
}