2016-04-12 9 views
4

この2つのループ/コードスニペットの違いを教えてもらえますか?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) 
      ); 

コードスニペット1:

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

もう一度、2番目の次元キーをハードコードし、2番目の次元キーではwhileループを使用して、各subArrayのすべての要素をループします。 '' another element "=>" 2番目のコードスニペットでのみ表示されます "" – Rizier123

答えて

1

はい、違いがありますビュー。

最初のものはO(n)と2番目のものO(n )です。

したがって、最初の方が効率的です。

+0

2つのコードスニペットは同じティンを網羅するので、本当にそれらを比較することはありません。 – Rizier123

+0

2次元がハードコードされていると仮定しています。配列の長さと次元を可変にすると仮定しています。 – shikhar

関連する問題