【问题标题】:Difference between a for loop and for while nested with list()for 循环和 for while 嵌套 list() 之间的区别
【发布时间】:2016-08-02 15:34:08
【问题描述】:

谁能告诉我这两个循环/代码 sn-ps 有什么区别?

我得到相同的输出,但教科书表明外循环和内循环存在差异?任何澄清都会有所帮助。我不认为我理解每个函数的列表。

数组定义:

$newArray  = array(array('CODE' => 'TIR', 'Description' =>'TIRES', 'Price' => 100),
                   array('CODE' => 'OIL', 'Description' => 'Oil', 'Price' =>10),
                   array('CODE' => 'SPK', 'Description' => 'Spark Plug', 'Price' =>40)
             );

代码 sn-p 1:

for ($row = 0; $row < 3; $row ++)
{           
    echo ' |'.$newArray[$row]['CODE'].'| '.$newArray[$row]['Description']. '| '.$newArray[$row]['Price'];
    echo  '<br />';
    echo  '<br />';      
}

代码 sn-p 2:

for ($row =0; $row <3; $row ++)
{
    while (list($key, $value) = each ($newArray[$row]))
    {
        echo "|$value";
    }
    echo  '<br />';
    echo  '<br />';
}

【问题讨论】:

  • 好吧,一旦你硬编码了第二维键并且在第二维中你使用一个while循环来循环遍历每个子数组的所有元素。只需向每个子数组添加另一个值,您就会看到它,例如:"another element" =&gt; "Will only be shown by the second code snippet"

标签: php for-loop while-loop


【解决方案1】:

是的,如果你从算法的角度来看,会有所不同。

第一个的时间复杂度为 O(n),第二个的时间复杂度为 O(n2)。

所以,第一个效率更高。

【讨论】:

  • 这两个代码 sn-ps 确实是一样的,所以你无法真正比​​较它们。
  • 你假设第二维是硬编码的,我假设数组长度和维度都是可变的。
猜你喜欢
  • 2021-08-16
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多