Извините, если это дубликат, я не могу понять, что искать, чтобы найти ответ.
У меня есть цикл foreach, и в этом цикле я пытаюсь проверить, (A == B). Затем, однажды найденный, я разрываю петлю. Если (A! = B) в итерации, я проверяю, если (X == Y).
Моя проблема в том, что если (X == Y) сначала будет установлено, что истина, цикл прерывается раньше, если (A == B) можно проверить.
Есть ли лучший способ выполнить эту задачу?
$variable[1] = ['A' => 'n', 'X' => 'n'];
$variable[2] = ['A' => 'n', 'X' => 'Y'];
$variable[3] = ['A' => 'B', 'X' => 'n'];
$test = 'B';
foreach ($variable as $value) {
if($value['A'] == $test || $value['X'] == "Y") {
echo 'The results: ' . $value['A'];
break;
}
}
// The results for $variable[2] are returned. I need the results for $variable[3] to be returned.
У меня был оператор else, который работал нормально, но мне приходилось дублировать вывод.
Заранее спасибо!
Приведенный выше код является упрощенной версией того, над чем я работаю. Вот код, над которым я работаю на самом деле.
foreach ($product_xml->products->product_styles as $style => $attribute) {
if(isset($_GET['color']) && $attribute['color'] == $color_selected || $attribute['is_default'] == "1") {
foreach ($attribute as $value){
$imgURL = (string)$value['imgurl'];
$thumburl = (string)$value['thumburl'];
$thumburl_array[(string)$value['side']] = (string)$value['thumburl'];
if (in_array($imgURL, $values)){continue;}
else{
array_push($values, $imgURL);
$imgURL = str_replace("REPLACE_DOMAIN_WITH",IDEQ_INKSOFTAPI_URL_SECURE,$imgURL );
$thumburl = str_replace("REPLACE_DOMAIN_WITH",IDEQ_INKSOFTAPI_URL_SECURE,$thumburl );
$thumburl = str_replace("150.png","500.png",$thumburl );
echo '<img src="'.$imgURL.'" class="pic'.$counter.'" title="'.$value['name'].'">';
$counter++;
}
}
break;
}
}