代码之家  ›  专栏  ›  技术社区  ›  Brian Bauman

在循环之间插入代码的优雅方法

php
  •  2
  • Brian Bauman  · 技术社区  · 16 年前

    在web开发中,我经常发现需要格式化和打印各种数据数组,并以某种方式分离这些数据块。换句话说,我需要能够插入代码 之间 每个循环,不在第一个条目之前或最后一个条目之后插入所述代码。我发现实现这一点最优雅的方法如下:

    function echoWithBreaks($array){
        for($i=0; $i<count($array); $i++){
            //Echo an item
    
            if($i<count($array)-1){
                //Echo "between code"
            }
        }
    }
    

    foreach公司 而不是 对于 foreach公司 ?

    4 回复  |  直到 13 年前
        1
  •  3
  •   Aren    16 年前

    我想你在找 implode 功能。


    function implodeEcho($array, $joinValue)
    {
       foreach($array as $i => $val)
       {
          if ($i != 0) echo $joinValue;
          echo $val;
       }
    }
    

    当然,这假设$array只由整数而不是键索引。

        2
  •  1
  •   zildjohn01    16 年前

    不幸的是,我不认为有任何方法可以做到这一点 foreach . 这在许多语言中都是一个问题。

    我通常用两种方法来解决这个问题:

    1. $i > 0 $i < count($array) - 1
    2. 使用 join implode .
        3
  •  0
  •   Artelius    16 年前

    我有时会用一个技巧:

    function echoWithBreaks($array){
        $prefix = '';
        foreach($array as $item){
            echo $prefix;
            //Echo item
    
            $prefix = '<between code>';
        }
    }
    
        4
  •  0
  •   Wrikken    16 年前

    $looped = false;
    foreach($arr as $var){
        if($looped){
           //do between
        }
        $looped = true;
        //do something with $var
    }
    
    推荐文章