2016-08-29 7 views
0

私はこのループのために私が書いている未定義のオフセット1を得ているのを理解しようとしています。私は特定のキー値のペアを持つ配列($ facts)を持っていて、各繰り返しで$ iが配列のキーの1つと一致するかどうかを調べようとしています。キーがセットされ、配列内にそのキーの値を表示する必要がある場合。Forループ表示の事実

for ($i = 1; $i <= 100; $i++) { 
    if (isset($i) && in_array($i, $facts[$i])) { 
    echo $facts[$i]; 
    } 
    echo $i; 
} 

UPDATE:インクリメント値は$事実配列のキーの1に等しいかどうかをテストするために、関数ISSETを使用してください。一致するキーがある場合は、数値の後に値を表示します。

+2

単純に 'isset($ i)'ではなく 'isset($ facts [$ i])...' '$ i'は、' for'ループで定義され、インクリメントされた値であるため、確実に設定されます。 –

+1

...と '$ facts [$ i]'は '$ facts [$ i]' 'の後におそらく失敗します。とにかく、配列ではないでしょう)。 –

+0

私の更新を確認してください –

答えて

1

をチェックすることができます。

for ($i = 1; $i <= 100; $i++) { 
    echo $i; // Now the number is first. 
    if (isset($facts[$i])) { 
     // This is only echoed if $i exists as a key. 
     echo $facts[$i]; 
    } 
} 

あなただけの事実が存在する場合は、番号を表示するif文の内側echo $iを動かす(いっそのか、その場合にはforeach($facts as $key => $value)を使用)します。

+0

更新を確認してください。 – user3732216

0

あなたは、私はこれが(in_array()を削除)チェックするのが正しい方法だと思い$facts[$i]

for ($i = 1; $i <= 100; $i++) { 
    if (isset($facts[$i]) && in_array($i, $facts[$i])) { 
    echo $facts[$i]; 
    } 
    echo $i; 
} 
+0

更新を確認してください。 – user3732216

関連する問題