为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
森栏 2022-07-16 18:47:02
这是我尝试过的$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 codeb and some different codec and some different code etc...
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您查找第一项的逻辑似乎有点多余,因为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;

}


查看完整回答
反对 回复 2022-07-16
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您需要将 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";

    }

}


查看完整回答
反对 回复 2022-07-16
?
Qyouu

TA贡献1786条经验 获得超11个赞

您可以使用定义了索引的 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";

    };

};


查看完整回答
反对 回复 2022-07-16
  • 3 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信