Php 使用if语句更改foreach循环

Php 使用if语句更改foreach循环,php,foreach,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 W

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

$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
1
2.
3.
4.
包
5.
包

5正如当前编写的那样,您的
if
块后面的
echo
语句将在每次循环迭代中执行。您只希望在
$key
的值为而非
5
时发生这种情况。因此,请使用
else
块:

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

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

foreach ($arr as $key) {
    if ($key == 5) {
        echo 'wrap';
        echo $key;
        echo 'wrap';
    } else {
        echo $key;
    }
}
那么这个呢:

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

foreach ($arr as $key) {
    if ($key == 5) {
        echo 'wrap';
        echo $key;
        echo 'wrap';
    } else {
        echo $key;
}
}
那么这个呢:

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

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

是的,很简单,只需添加一个“else”语句:

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

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

是的,很简单,只需添加一个“else”语句:

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

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

太好了。如果我想将
4
5
包装在同一个东西中,会发生什么?我有这个,但它分别包装了这两个:
($key==3 | |$key==4)
。我正在尝试获取
wrap 3 4 wrap
@tmyie:如果
$key
等于
3
4
,则它将被包装。请看演示:对不起,我的意思是我得到了这个结果:
wrap 3 4 wrap
(所以两个数字都被包装在同一个东西中)@tmyie:你需要这个做什么?我正在尝试停止重复的HTML内容(并在这个过程中学习)。多亏了你,我现在把它修好了。干杯太好了。如果我想将
4
5
包装在同一个东西中,会发生什么?我有这个,但它分别包装了这两个:
($key==3 | |$key==4)
。我正在尝试获取
wrap 3 4 wrap
@tmyie:如果
$key
等于
3
4
,则它将被包装。请看演示:对不起,我的意思是我得到了这个结果:
wrap 3 4 wrap
(所以两个数字都被包装在同一个东西中)@tmyie:你需要这个做什么?我正在尝试停止重复的HTML内容(并在这个过程中学习)。多亏了你,我现在把它修好了。干杯