【问题标题】:Multiple foreach without nesting没有嵌套的多个foreach
【发布时间】:2011-03-21 08:24:48
【问题描述】:

第一个代码块按预期工作。 foreach 打印来自 $fnames 键值数组的值。

foreach($fnames as $fname){
   echo $fname;
}

$fnames 数组有一个与之对应的$lnames 数组,我想同时打印 lname 和 fname,如下所示:但它不编译

foreach($fnames as $fname && $lnames as $lname){
   echo $fname . " " . $lname;
}

我也试过这个,但是也编译不出来。

foreach($fnames,$lnames as $fname,$lname){
   echo $fname . " " . $lname;
}

唯一编译的就是这个,但它没有给出正确的结果。

foreach($fnames as $fname){
   foreach($lnames as $lnames){
       echo $fname . " " . $lname;
   }
}

如何在同一索引的 2 个数组之间进行这种配对?

【问题讨论】:

    标签: php arrays foreach associative-array


    【解决方案1】:

    如果您不想合并数组,您实际上需要同时运行两个生成器。幸运的是,PHP 有一种使用数组的方法。不过,这有点老派。

    reset($fnames);
    reset($lnames);
    do {
        print current($fnames).' '.current($lnames)."\n";
    } while( next($fnames) && next($lnames) );
    

    虽然这是一个稍微做作的例子,但它仍然是一种有用的技术。

    【讨论】:

      【解决方案2】:

      另一种选择是:

      foreach(array_map(null,$fnames,$lnames) as $name){
          echo $name[0].' '.$name[1];
      }
      

      【讨论】:

        【解决方案3】:
        foreach($fnames as $key => $fname){ 
           echo $fname.' '.$lnames[$key]; 
        }
        

        【讨论】:

        • 应该是,因为数组中的键匹配。
        猜你喜欢
        • 2019-12-01
        • 1970-01-01
        • 2017-10-13
        • 2018-09-19
        • 2018-01-25
        • 1970-01-01
        • 2020-09-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多