2014-03-06 117 views
-2

我有一个foreach循环,我想添加一个if else语句里面......如果else语句foreach循环

这让我发疯了,所以任何帮助将是非常欢迎的。

这是代码:

<?php 
if(isset($_POST['wiel_submit']) && $_POST['wiel_submit'] == "Zoek") 
{ 
    echo "\t\t\t\t\t<h2>".$stockselection."</h2> 
\t\t\t\t\t<br />\n"; 
    $type = split("//", $_POST['wiel_type']); 
?> 
        <ul class="wheels"> 
<?php 
    $velgen = $wielclass->getWielenInformatie($_POST['wiel_merk'], $_POST['wiel_model'], $type[0], $_POST['wiel_inch']); 
    $first = true; 
    $vorigvelg = -1; 
    $warningEmitted = false; 
    foreach($velgen as $velg) 
    { 
     if($velg[11] === "IA" && !$warningEmitted && $velg[2] == "086" || $velg[2] == "251" || $velg[2] == "250" || $velg[2] == "249" || $velg[2] == "220" || $velg[2] == "217" || $velg[2] == "197" || $velg[2] == "182" || $velg[2] == "181" || $velg[2] == "180" || $velg[2] == "142" || $velg[2] == "141" || $velg[2] == "140" || $velg[2] == "139" || $velg[2] == "138" || $velg[2] == "137" || $velg[2] == "136" || $velg[2] == "135" || $velg[2] == "134" || $velg[2] == "132" || $velg[2] == "131" || $velg[2] == "130" || $velg[2] == "129" || $velg[2] == "128" || $velg[2] == "127" || $velg[2] == "126" || $velg[2] == "097" || $velg[2] == "096" || $velg[2] == "094" || $velg[2] == "093" || $velg[2] == "092" || $velg[2] == "090" || $velg[2] == "122" || $velg[2] == "121" || $velg[2] == "120" || $velg[2] == "114" || $velg[2] == "112" || $velg[2] == "111" || $velg[2] == "109" || $velg[2] == "104" || $velg[2] == "103" || $velg[2] == "102" || $velg[2] == "099" || $velg[2] == "098" || $velg[2] == "123" || $velg[2] == "124" || $velg[2] == "125" || $velg[2] == "133" || $velg[2] == "071" || $velg[2] == "075" || $velg[2] == "084" || $velg[2] == "113" || $velg[2] == "108" || $velg[2] == "089" || $velg[2] == "073" || $velg[2] == "072" || $velg[2] == "101" || $velg[2] == "088") 
     { 

?> 
         <li><span class="title">Foto <?php echo $velg[2]; ?></span> 
          <a href="/portfolio/inter-action-<?php echo $velg[2]; ?>" class="preview" title="Fotonummer: <?php echo $velg[2]; ?>"> 
           <img src="/wp-content/uploads/inter-action-<?php echo $velg[2]; ?>.jpg" alt="Fotonummer: <?php echo $velg[2]; ?>" class="wheelImg"/> 
          </a> 
          </span> 
         </li> 
<?php 
      $vorigvelg = $velg[2]; 
     } 
     else 
     { 
      echo "Niets gevonden!"; 
      $warningEmitted = true; 
     } 

    } 
?> 
        </ul> 


<?php 
} 
?> 

我试图做到的是,当“IA”没有发现匹配一定数量回声图像列表。

当“IA”未找到时回声“找不到”一次。

在此刻,当“IA”被找到并且还没有找到“IA”时,他显示“Nothing Found”。而且因为它在一个foreach里面,它显示了多次。

我几乎尝试了一切,但它是我的命ATM ...

任何人有一个想法,我怎样才能使这项工作?

Thnx

+0

,如果语句是陌生的,具有AND和OR无需额外的括号? –

+0

你的意思是if($ velg [11] ===“IA”&&!$ warningEmitted &&($ velg [2] ==“086”|| $ velg [2] ==“251”...)) ? –

回答

0

if语句必须在每个||中有所有参数,

if($velg[11] === "IA" && !$warningEmitted && $velg[2] == "086" || $velg[11] === "IA" && !$warningEmitted && $velg[2] == "086" $velg[2] == "251" || $velg[11] === "IA" && !$warningEmitted && $velg[2] == "086" $velg[2] == "250" 
{ 
0

你的代码真的不是理想的。

我认为你的问题是,&&绑定比||更接近,改变if的条件。

我会建议其更改为:

$allowed = array(
    "086", "251", "250", 
    "249", ... 
); 
if (
    ($velg[11] === "IA") && 
    (!$warningEmitted) && 
    (in_array($velg[2], $allowed)) 
) 
{ 
    ... snip ... 
} 
else 
{ 
    ... snip ... 
} 

这应该解决您的问题使其更具可读性。在阵列

0

更好地利用:

$values = array("086", "251", "250", "249", "220", "217", "197", "182", "181", "180", "142", "141", "140", "139", "138", "137", "136", "135", "134", "132", "131", "130", "129", "128", "127", "126", "097", "096", "094", "093", "092", "090", "122", "121", "120", "114", "112", "111", "109", "104", "103", "102", "099", "098", "123", "124", "125", "133", "071", "075", "084", "113", "108", "089", "073", "072", "101", "088"); 
if ($velg[11] === "IA" && !$warningEmitted && in_array($velg[2], $values)) { 
    // statement 
} else { 
    $warningEmitted = true; 
}