使用if语句来改变foreach循环

时间:2014-03-25 15:05:11

标签: php foreach

我有一个循环。它回应了数组中的每个项目。但是,我想用一些自定义内容包装其中一个项目。目前,我可以做到这一点,但它不必要地重复它。这是我的循环:

$arr = array(1,2,3,4,5,6);

foreach ($arr as $key) {
    if ($key == 5) {
        echo 'wrap';
        echo $key;
        echo 'wrap';
    }
        echo $key;
}

产生:

1
2
3
4
WRAP
5
WRAP
5 <--- remove
6

如您所见,$key 5正在重复。我只需要在它被召唤时将其包裹一次。有没有办法只回显一次5

3 个答案:

答案 0 :(得分:2)

正如当前编写的那样,echo块之后的if语句将在每次循环迭代时执行。您只希望$key的值 5时才会发生这种情况。所以使用else块:

foreach ($arr as $key) {
    if ($key == 5) {
        echo 'wrap';
        echo $key;
        echo 'wrap';
    } else {
        echo $key;
    }
}

答案 1 :(得分:1)

这个怎么样:

$arr = array(1,2,3,4,5,6);

foreach ($arr as $key) {
    if ($key == 5) {
        echo 'wrap';
        echo $key;
        echo 'wrap';
    } else {
        echo $key;
}
}

答案 2 :(得分:1)

是的,简单,只需添加&#39;否则&#39;语句:

$arr = array(1,2,3,4,5,6);

foreach ($arr as $key) {
    if ($key == 5) {
        echo 'wrap';
        echo $key;
        echo 'wrap';
    } else {
        echo $key;
    }    
}