如果是else语句foreach循环

时间:2014-03-06 14:08:09

标签: php if-statement foreach

我有一个foreach循环,我想在其中添加一个if else语句......

它让我发疯,所以任何帮助都会非常受欢迎:)

这是代码:

<?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”时显示“Nothing Found”。因为它在一个foreach里面,它会多次出现。

我几乎尝试了所有东西,但它正在杀死我...

任何人都知道如何才能做到这一点?

日Thnx

3 个答案:

答案 0 :(得分: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" 
{

答案 1 :(得分:0)

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

我认为您的问题是&&||更接近,改变了if的条件。

我建议将其更改为:

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

应解决您的问题使其更具可读性。

答案 2 :(得分: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;
}