2016-11-17 2 views
0

私は今日の日付に応じて日付をチェックし、別の変数結果を生成するものを作成しようとしています。inarrayのトラブル

これは私の現在のコードです:

<?php 
    for($i = 0; $i <= 25; $i++) 
    $dates[] = date("d", strtotime("+$i days")); 
    foreach ($dates as $today) { 
     if (in_array($today, array('01', '05', '09', '14', '19', '24'), true)) { 
      $tweet = "one"; 
     } 
     if (in_array($today, array('02', '06', '10', '15', '20', '25'), true)) { 
      $tweet = "two"; 
     } 
     if (in_array($today, array('03', '07', '11', '16', '21'), true)) { 
      $tweet = "three"; 
     } 
     if (in_array($today, array('04', '08', '12', '17', '22'), true)) { 
      $tweet = "four"; 
     } 
    } 
    echo $tweet; 
?> 

問題は、日付は常にそれを変更してもエコー「4」、私は何をしないのですということでしょうか?

+5

'$ tweet'を上書きするので、最後に実行されるものは今日+ 25日になります。これは12日目です。 'foreach'の中にある' echo 'を意味しましたか? –

+0

ありがとう@JonStirling – Aaron

+0

このような問題は解決しましたか?答えとして投稿します。 –

答えて

2

ループの各反復では$tweetを上書きするため、実際に最後の反復のみが使用可能であることを意味します。最後の反復は今日+12日となり、12月12日となります。

12は、$tweetの割り当てをfourにします。これが最後の反復であるため、ループが終了した後には$tweetと等しくなります。