【问题标题】:Increment a value inside php foreach?在php foreach中增加一个值?
【发布时间】:2012-06-18 09:01:30
【问题描述】:

是否可以在 foreach 中增加 php 变量? 我知道如何通过在外部声明来循环。

我正在寻找类似以下语法的东西

foreach ($some as $somekey=>$someval; $i++)
{

}

【问题讨论】:

  • 以上无效。 $i++ 不允许在 foreach 中。你把它和for($i = 0; $i < 10; $i++) 混在一起了吗?
  • s,我正在寻找类似的东西。它可以为我节省两行代码

标签: php for-loop foreach


【解决方案1】:

不,你必须使用

$i = 0;
foreach ($some as $somekey=>$someval) {
    //xyz
    $i++;
}

【讨论】:

  • 请注意,如果循环中有 continue 语句(这可能会跳过增量) - 在这种情况下,最好从 $i = -1 开始并在 //xyz 之前递增它。
【解决方案2】:
foreach ($some as $somekey=>$someval)
{
     $i++;


}

【讨论】:

    【解决方案3】:

    懒惰的做法是:

    {
        $i=1;
        foreach( $rows as $row){
            $i+=1;
        }
    }
    

    ,但是你必须在 foreach 之后或最后取消设置 $i 的范围以使 $i 不存在

    $i=1;
    foreach( $rows as $row){
        $i+=1;
    }
    unset($i);
    

    ,但你应该像利奥波德所说的那样使用 for 循环。

    【讨论】:

      【解决方案4】:
      $dataArray = array();
      $i = 0;
      foreach($_POST as $key => $data) {
          if (!empty($data['features'])) {
              $dataArray[$i]['feature'] = $data['features'];
              $dataArray[$i]['top_id'] = $data['top_id'];
              $dataArray[$i]['pro_id'] = $data['pro_id'];
          }
          $i++;
      }
      

      【讨论】:

        【解决方案5】:

        我知道这里是旧的,但这是我对它的看法。

        $some = ['foo', 'bar'];
        
        for($i = 0; $i < count($some); $i++){
         echo $some[$i];
        }
        

        -- 更新--

        $some = ['foo', 'bar'];
        $someCounted = count($some);
        
        for($i = 0; $i < $someCounted; $i++){
         echo $some[$i];
        }
        

        它将实现您首先要寻找的东西。
        但是您必须增加索引 $i。
        所以它不会为您节省任何打字时间。

        【讨论】:

        • 在 for 中使用 count 会在每个循环中执行 count 函数,不要这样使用,在循环之前写入变量并稍后使用。
        【解决方案6】:

        有什么理由不使用

        foreach ($some as $somekey=>$someval)
        {
        $i++;
        }
        

        ?

        【讨论】:

          【解决方案7】:
          foreach ($some as $somekey=>$someval)
          {
              $i++;
          }
          

          【讨论】:

            【解决方案8】:
            foreach ($some as $somekey=>$someval)
            {
             $i++;
            }
            

            i 只是一个变量。即使它用于迭代您正在使用的任何项目,它仍然可以像其他任何项目一样进行修改。

            【讨论】:

              【解决方案9】:

              这样就可以了! 请记住,如果您想从 0 开始计数/递增,则必须在 foreach 循环之前定义 $i = 0。

              $i = 0;
              foreach ($some as $somekey=>$someval) {
                  $i++;
              }
              

              【讨论】:

                猜你喜欢
                • 2012-03-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-05-01
                • 1970-01-01
                • 1970-01-01
                • 2017-06-09
                相关资源
                最近更新 更多