2016-12-30 3 views
-1

私はここで私の論理に詰まっているようです。私は365の配列のセットを持っていて、今月の日に対応する配列だけを表示したい。現在の月の日に対応する配列を表示

私はプログラミングが初めてで、毎月の聖書読解計画を作成するという課題に取り組んでいます。

これは私の配列です:

$meses = array(1 => 'Janeiro', 2 => 'Fevereiro', 3 => 'Março', 4 => 'Abril', 5 => 'Maio', 6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro', 12 => 'Dezembro'); 

$leitura = array(
1 => array(
    'Antigo Testamento' => 'Gn 1,2', 
    'Novo Testamento' => 'Mt 1,2' 
), 
2 => ... 
); 

私はここにすべてのアレイを記入した場合、それは長すぎるだろう! :)

私はこれをどうやってできるのだろうと思っていました。私の質問は、 "12月"は31日で、12月を構成する年の日に対応する31の配列しか表示しないとPHPにどのように伝えることができますか?そして、1月には、その月に対応する31個の配列しか表示されませんでしたか?

ありがとうございました!

+0

のようなものを使用することができprint_r($leitura[daynumber()]);

を使用して、現在の日のためのアレイを表示することができたの方法、それは変わるかもしれませんか? – Farkie

+0

こんにちは@ファーキー、私は実際にそれを28のデフォルトとして残すことを考えていました。 – danrodrigues

答えて

1

あなたは今年の現在の日付を取得するために

date('z'); 

を使用することができます。今年はそう、

function daynumber() { 
    $day = date('z'); 
    if ($day >= 60 AND date('L') == 1) $day = $day - 1; 
    return $day; 
} 

これは、2月の日付番号になりますうるう年であれば年がうるう年である場合には 、あなたは簡単に2月29日28日と同じを開始、1をsubstractすることができます。

あなたが全体の月のすべてのアレイを印刷したい場合、あなたは2月に対処する方法を

function arraysmonth() { 
    $daynumber = $fisrtdayofmonth = date('z',strtotime("first day of this month")); 
    $lastdayofmonth = date('z',strtotime("last day of this month")); 
    while ($daynumber < $lastdayofmonth) { 
     $returnarray[] = $leitura[$daynumber]; 
     $daynumber = $daynumber + 1; 
    } 
    return $returnarray; 
} 
print_r(arraysmonth()); 
+0

ありがとう!!あなたの答えは私に働くべきいくつかのアイデアを与えてくれました。ほんとうにありがとう! – danrodrigues

+0

私の答えがあなたの質問に答えたなら、私の答えを受け入れたものとしてマークしてもらえますか?これは上下のボタンの下で行うことができます。 – rpi

+0

素晴らしいです、私はちょうど私のコードであなたのソリューションを実装し終えました。どうもありがとう! – danrodrigues

関連する問題