HOT CAT QUERY FEVERS
最終更新日:2019年1月4日193 Views

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

Array ( [1] => 緋 [2] => 薔薇 [3] => 甚三紅 [4] => 蜜柑 [5] => 黄水晶 [6] => 萌黄 [7] => 苔 [8] => 薄緑 [9] => 千歳緑 [10] => 青碧 [11] => 瑠璃 [12] => 濃藍 [13] => 紺桔梗 [14] => 菫 [15] => 葡萄 [16] => 焦茶 [17] => 珈琲 [18] => 白 [19] => 月白 [20] => 白藤 [21] => 金色 [22] => 白柳 [23] => 灰 [24] => 青鈍 [25] => 紺鼠 [26] => 源氏鼠 [27] => 砂鼠 [28] => 黒 [29] => デフォルト )
左記の配列($color_array)から色名を一つずつ取り出し通年で表示する方法を考えた。 まず、365日を配列の数で割って表示期間の日数を算出。 $dividay = 365/(count($color_array)); // 12.586206896552 これに、1日の秒数である86400を掛けて表示時間を得る。 $representime = ceil(86400 * $dividay); // 1087449 それから、「今」が年始から数えて何秒かを求める。 $strtotime_diff = time() - strtotime(date('Y').'0101'); // 1561139 この経過秒数を表示時間で割り、現在の表示時間が配列中の何番目に当たるかを求める。 $order = ceil($strtotime_diff / $representime); // 2 または date('z')+1 が『年間の通算日』なので、表示期間の日数で割れば同値となる。 $order = ceil((date('z')+1) / $dividay); // 2 これで $color_array$order を入れれば、「今」の表示期間の色名が取得できる。 echo $color_array[$order]; // 薔薇 そんな訳で「今」のテンプレートの色名は「薔薇」。 ちなみに、配列のキーを [1] から始める場合は、array_unshift($color_array, 'null'); としてダミーを追加してから unset($color_array[0]); で [0] を削除する。
有害無益なコンテンツを除去する方法

類似する記事

有害無益なコンテンツを除去する方法 - 39%
押すとイヤイヤするボタン - 32%
さくらのドメインのみ共有SSLにする - 30%

シェア

コメント

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