更新 2019.2.26 15:57閲覧 1428

【PHP】 配列の値を通年で表示する方法

Array ( [1] => 赤 [2] => 桃 [3] => 茶 [4] => 黄緑 [5] => 緑 [6] => 青 [7] => 水 [8] => 紫 [9] => 灰 [10] => #abcdef )
左記の配列($color_array)から色名を一つずつ取り出し通年で表示する方法を考えた。 まず、365日を配列の数で割って表示期間の日数を算出。 $dividay = 365/(count($color_array)); // 36.5 これに、1日の秒数である86400を掛けて表示時間を得る。 $representime = ceil(86400 * $dividay); // 3153600 それから、「今」が年始から数えて何秒かを求める。 $strtotime_diff = time() - strtotime(date('Y').'0101'); // 7632906 この経過秒数を表示時間で割り、現在の表示時間が配列中の何番目に当たるかを求める。 $order = ceil($strtotime_diff / $representime); // 3 または date('z')+1 が『年間の通算日』なので、表示期間の日数で割れば同値となる。 $order = ceil((date('z')+1) / $dividay); // 3 これで $color_array$order を入れれば、「今」の表示期間の色名が取得できる。 echo $color_array[$order]; // 茶 そんな訳で「今」のテンプレートの色名は「茶」。 ちなみに、配列のキーを [1] から始める場合は、array_unshift($color_array, 'null'); としてダミーを追加してから unset($color_array[0]); で [0] を削除する。

コメント

当フォームより収集される個人情報は、返信を要する際に使用されるものであり、法令に基づく行政機関等への提供を除き、ご本人の同意を得ずに第三者に提供することはありません。また、コメントが掲載される場合であってもメールアドレスが本サイト内に記載されることはありません。