Foreach 与 php 中的第一个数组不同

这是我尝试过的


$a = array("a", "b", "c");

$b = $a[0];


if (array_search($b,$a) == 0) {

    echo $a[0]." and some code";

}

else {

    foreach($a as $c) {

        echo $c."and some different code";

    }

}

我希望结果是


a and some code

b and some different code

c and some different code etc...


森栏
浏览 110回答 3
3回答

慕斯王

您查找第一项的逻辑似乎有点多余,因为foreach()只有在没有找到第一项(它总是会)时才会这样做。为了简化代码,只需回显第一项,用于array_shift()删除此值并foreach()覆盖数组的其余部分...$a=array("a","b","c");echo $a[0]." and some code".PHP_EOL;array_shift($a);foreach($a as $c){    echo $c." and some different code".PHP_EOL;}

繁星点点滴滴

您需要将 foreach 上移一级,如果您明确指定值,则无需搜索。加上其他一些小修复。这是最接近您的代码的解决方案:$a = array("a","b","c");$b = $a[0];foreach($a as $c) {    if ($b == $c) {        echo $b . " and some code\n";    } else {        echo $c . " and some different code\n";    }}

Qyouu

您可以使用定义了索引的 foreach 并使用 case / if 语句?foreach ($arr as $key => $value) {    if($key==0){     echo $value . "and some code";    } else if ($key===1){     echo $value . "and some different code";    } else {      echo $value . "and some even more different code";    };};
打开App,查看更多内容
随时随地看视频慕课网APP