2016-04-12 74 views
4

有人能告訴我這兩個循環/代碼片斷有什麼區別嗎?for循環與for while嵌套list之間的區別()

我得到了相同的輸出,但是一本教科書指出與外部和內部循環有區別嗎?任何澄清都會有幫助。我不認爲我正在理解每個函數的列表。

數組定義:

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

代碼片段:

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

代碼片斷2:

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

那麼,一旦你硬編碼的第二維鍵,在第二個你使用一個while循環遍歷每個子數組的所有元素。只需爲每個子數組添加另一個值,就會看到它,如下所示:'「another element」=>「只會顯示在第二個代碼片段中」# – Rizier123

回答

1

是的,有區別,如果你從算法角度看它視圖。

第一個的時間複雜度爲O(n),第二個爲O(n )。

所以,第一個更有效率。

+0

這兩個代碼片段可以完全相同,因此您可以'真的比較它們。 – Rizier123

+0

那麼你假設第二維是硬編碼的,我假設數組長度和維數都是可變的。 – shikhar