【PHP】配列を学んで曜日を日本語に変えて表示させてみる!【プログラミング初心者が独学で1から掲示板サイトを作れるのか?Part7】

Web

【PHP】配列を学んで曜日を日本語に変えて表示させてみる!【プログラミング初心者が独学で1から掲示板サイトを作れるのか?Part7】

こんにちは、穏やか暮らし計画ライターのあらです。

前回の記事では、これまで習ってきたことと、strtotime(タイムスタンプ指定)を使って、1ヶ月分のカレンダーをプログラムしてみました。今回は「配列」というものを使って、前回曜日を日本語表記になるようにプログラムしていきたいと思います。

この記事はシリーズもののブログ記事です。まだ#1の(プログラミング初心者が独学で1から掲示板サイトを作れるのか?【始めた理由と目標編】)から見ていない方は#1からぜひ見てみてください。

配列とは

今回プログラムしたコード

今回プログラムしたコード

配列とは、個人的には変数にすごく似ていると思っていて、変数は1つの値しか代入できないのに対して、配列は複数の値を代入することができる優れものです。

上の画像の3行目が配列したもの、5行目でその配列したものから選んで表示させたコードになっています。もう少し配列に関して詳しく説明していきたいと思います。

配列コードの書き方と表示方法

配列は上記のように、$名前=['0''1''2''3''4''5'];でコードを組んでください。

この配列の代入した文字は、左から0番目~何番目と順番が決まっており、例えば日曜日は0番目、水曜日は3番目、土曜日は6番目という順番になっています。

一般的には1番目から始まりますが、プログラミングの世界では0から始まることが普通になっているので覚えておいたほうが後々良いかもしれません。自分も最初は困惑しました笑

上記の画像は、printでの表示方法です。意味としては、$week_nameの配列の中の0番目の文字を表示させるということです。こちらの表示結果は「日曜日」と表示されたので、予想通りの結果が出てきました。

それでは配列の基本はマスターできたと思うので、実際に曜日を日本語表記にさせ、今日の曜日を自動的に表示させるコードを作っていきたいと思います。

今日の曜日を日本語で表示させる!

配列を説明する中で、曜日を英語表記→日本語表記にするやり方は学びました。あとは、先ほど学んだことと今日の曜日を自動的に表示させるコードを組み合わせる必要があります。

前回、date関数とstrtotimeを使って今日から30日後までの日付と英語表記の曜日を出したので、今回はdate関数だけを使って行こうかなと思います。

  • Y:年(4桁表記)
    • y:年(2桁表記)
  • m:月(2桁表記)
    • n:月(先頭にゼロつけない)
  • d:日(2桁表記)
  • H:時間(24時間単位)
    • h:時間(12時間単位)
  • i:分
  • s:秒
  • t:指定した月の日数
  • w:曜日番号(0[日曜]から6[土曜]の値)
  • .:文字列連結
  • \n:改行

出典:PHPで日付関数を使いこなす(date,strtotime)-Qiita

こちらは前回も紹介したdate関数の時に使うアルファベットです。今回はw:曜日番号(0[曜日]から6[土曜]の値)を使って、コードを書いていきたいと思います。

完成したコードがこちらになります。

書き方の流れとしては、とりあえす先ほど習った$week_nameに配列として日曜日から土曜日までの漢字を入れます。

ここで日曜日を0番目にしないと、date関数の「w」が日曜日を0からとしているので、順番をバラバラにしてはいけません。配列ができたら、あとはprintで表示させていきます。

配列とdate関数を組み合わせる時は、配列文字[date('英文字')]のように使うので、$week_name[date('w')]を書き、これだけでは、ただ単に「日」と出てくるだけなので、'今日は'と'曜日です'を毎回表示させることによって、「今日は日曜日です」と表示させられることができます。

配列の中に['今日は日曜日です','今日は月曜日です'........]とコードを作っても間違いではないですが、文字を打つ手間になりますし、printの方に入れた方がコードの見栄えが良いので、できればprintの方に書くといいと思います。

最後に

配列は今後も使ってたくさん使っていくようなプログラミングの基本中の基本なことだと思うので、違った問題や掲示板を作る上でも使えるといいなと思っています。

date関数も最初はちんぷんかんぷんでしたが、何回か問題で使うようになって、だいぶ慣れてきました。

また次回の課題も頑張っていきましょう!

▼私が参考にしている教材

▼前回の記事 1ヶ月分のカレンダーを作ってみよう!

  • この記事を書いた人

ara

【AFFINGER6を使ってブログ初心者でも思い通りのサイト運営ができる】をテーマに記事を発信。高校生からブログを始め、特化型ブログでは1年以内に最高月30万PVを達成。特化型ブログの経験を生かし、「MyHP」を立ち上げました。

-Web