2016-07-08 21 views
-1

公正な数年後にPHPに戻ってくるのは、個人的なプロジェクトのためです。FOREACHループ内のPHP IF文

foreachループ内でif文を処理するのに問題があります。配列の1つが特定の単語に等しい場合、追加の値をエコーするコードを取得しようとしています。

私がこれまで持っているコードは次のとおりです。

それは、この出力が
test1 
test2value 
test3 
test4 
test5 

...

test1 
test2value 
test3value 
test4value 
test5value 

どれを:

$test = array('test1', 'test2', 'test3', 'test4', 'test5'); 

foreach ($test as $value){ 
    if ($value == "test2"){ 
     $secondValue = "value"; 
    } 

    echo $value . $secondValue . "<br />"; 
} 

は、私は次の出力にこれを期待していました私が間違っているところについてのアイデアは? ありがとう

+4

一度 '$ secondValue'が設定されると、設定されたままになります。 'if($ value ==" test2 "){ $ secondValue =" value "を置き換えます。} '' $ secondValue =($ value == "test2")のようなもので? "value": ''; ' –

答えて

2

あなたはクリア/ $値

$test = array('test1', 'test2', 'test3', 'test4', 'test5'); 

foreach ($test as $value){ 
    $secondValue =""; 
    if ($value == "test2"){ 
     $secondValue = "value"; 
    } 

    echo $value . $secondValue . "<br />"; 
} 
+0

ありがとうございました。 –

1

ループが完了した後に$secondValueを空の文字列に戻すことはありません。そのため、常に値(文字通り)があります。

$test = array('test1', 'test2', 'test3', 'test4', 'test5'); 

foreach ($test as $value){ 
    $secondValue = null; 
    if ($value == "test2"){ 
     $secondValue = "value"; 
    } 

    echo $value . $secondValue . "<br />"; 
} 
0

は各反復時に$ secondValueをリセットしてくださいリセットする必要があります。

$test = array('test1', 'test2', 'test3', 'test4', 'test5'); 

foreach ($test as $value){ 
    $secondValue = ''; 
    if ($value == "test2"){ 
     $secondValue = "value"; 
} 

echo $value . $secondValue . "<br />"; 
} 
0
foreach ($test as $value){ 
    if ($value == "test2"){ 
     echo $value . $secondValue . "<br />"; 
    } 
    else 
    echo $value . "<br />"; 
} 
+0

コードはしばしば自分自身で話しますが、コードに説明を追加するとよいでしょう。これは、レビュー専用のキューにポップアップされました。コード専用の回答が多いようです。 – Will

0

それは短い答えだから、このコードを使用してください。

$test = array('test1', 'test2', 'test3', 'test4', 'test5'); 
foreach ($test as $value){ 
    echo $value . ($value == 'test2' ? 'value' : '') . "<br />"; 
} 
+0

**なぜこのコードを使用する必要がありますか?良い答えは、元のコードの何が間違っているのか、その答えがどのように修正されるのかを説明する必要があります。説明なしでコードを投稿するだけではありません。 – Barmar