【问题标题】:Convert For Each into For将 For Each 转换为 For
【发布时间】:2013-12-31 02:17:04
【问题描述】:
foreach( $project->states as $state ) :     
    echo $state->name;
endforeach;

如何将此 foreach 循环转换为 for 循环并仍提取带有循环索引的 name

【问题讨论】:

  • 你为什么在里面有<?php?你已经在 PHP 代码中了。
  • 取决于$project->states 到底是什么;它是数字索引数组还是关联数组?你为什么要首先转换它?
  • 整段代码都很傻:)

标签: php loops for-loop foreach


【解决方案1】:

假设它是一个数字索引数组:

for ($i = 0; $i < count($project->states); $i++) {
    echo $project->states[$i]->name;
}

不过,我不确定您为什么要这样做。如果需要获取索引,可以使用foreach

foreach ($project->states as $i => $state)

【讨论】:

    【解决方案2】:

    首先,使用array_values 函数确保$project-&gt;states 是数字索引数组。

    例子:

    <?php
    $arrStates = array_values($project->states);
    
    for ($i = 0; $i < count($arrStates); $i++) {
        echo $arrStates[$i]->name;
    }
    ?>
    

    【讨论】:

      【解决方案3】:

      试试这个:

      很简单的一个。

      唯一的区别是在使用数组之前先计算数组的所有元素。

      <?php
      
      for($i = 0; $i < count($project->states); $i++)
      {
          //write operation
      }
      ?>
      

      谢谢!

      【讨论】:

        猜你喜欢
        • 2020-09-03
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-14
        • 1970-01-01
        • 2021-06-06
        相关资源
        最近更新 更多