第3回 占いソフトを作ろう - rand()関数、配列、連想配列 - - PHP基礎講座
Saity先生のPHP基礎講座
Lecutures on PHP
第3回 占いソフトを作ろう - rand()関数、配列、連想配列 - (その4)
キーに文字列を使う「連想配列」
- さっきのプログラムでは、キーが1~10番の配列を作ったよね。 実はキーには、数字だけじゃなくて文字列も指定できる。そうやって文字列をキーにした配列のことを連想配列と呼ぶんだよ。
- ふーん、使い道あるのかな・・・。
- まあまあ。実際のプログラミング、たとえばユーザーとのやりとりをコーディングするとき、この連想配列がよく使われるんだ。以下のようなコードを見てみよう。
<?php
$today = getdate();
print($today["year"]);
?>
- なんか短いコードですね。getdateって、新しい関数が出てきましたけど・・・。
- うん、この関数は現在の時間を元に、連想配列の形式で値を返してくれるものなんだ。
- ???前回やったdate関数とは違うんですか?
- 同じような事をするんだけど、返し方がちがうんだね。getdate関数には引数を渡してないでしょ。渡した文字を整形してくれるわけじゃないんだ。

- ふーん。。。なんだかよく分からないけど、とりあえず連想配列って、配列の「[」から「]」のところが文字列、上のコードの場合は「year」になってる配列のことなんですね。
- それだけわかっていれば、今のところは十分さ☆
配列の作り方
- 他に配列の事で知っておいた方が良いことはありますか?
- そうだね、配列と連想配列の基礎を勉強したけど、配列の作り方についてもう少しきちんと教えておこうかな。 配列を作るには、実はさっき説明した以外にも、以下のように何通りかの書き方があるんだ。
<?php
$array1[0] = "あいうえお";
$array1[1] = "かきくけこ";
$array1[2] = "さしすせそ";
$array2[] = "あいうえお";
$array2[] = "かきくけこ";
$array2[] = "さしすせそ";
$array3 = array("あいうえお", "かきくけこ", "さしすせそ");
$array4["a"] = "あいうえお";
$array4["ka"] = "かきくけこ";
$array4["sa"] = "さしすせそ";
$array5 = array(
"a" => "あいうえお",
"ka" => "かきくけこ",
"sa" => "さしすせそ"
);
?>
- $array1?$array3まで、また$array4と$array5はそれぞれ同じ内容の配列を定義しているよ。
- $array1は、さっきやったのと同じ形ですね。キーが0から始まってますけど、いいんですか?
- うん。キーが0から始まっているのは間違いじゃなくて、コンピューターの場合、数え文字の始まりは0である事が多いんだよ。だから、むしろこっちの方が一般的なんだ。
- へぇ。数を数えるのに0個、1個、2個…って数えるんだ。
- $array2はキーを指定せずに自動的にキーが追加されていく書き方なんだ。何も書かないと、勝手に0から順番にキーが入っていくよ。結果は$array1の場合とまったく同じになる。

- ふむふむ。$array3はどういう書き方なんですか?
- array()っていう関数(実際には言語構造)があるんだ。この引数に値を渡してやると、渡した引数で配列を作ってくれる。やはり結果は、$array1や$array2の場合と同じものになるんだ。
- えっと、次の$array4はキーに文字列が使われてるから、さっき説明してもらった連想配列ですね。
- そうだね。それに、$array5もやはり連想配列の書き方の一つなんだ。矢印のような記号「=>」があるけど、この矢印の左側が連想配列のキーで、右側が値になっているよ。$array4と比較するとわかりやすいかな。
- なるほど、色々ありますねぇ。
- うんうん。書き方は人の好みなんだけど、PHPでは命令を複数行に分けて書くことが出来るから、たとえば$array5は以下のように、一覧のような書き方もできるよ。
<?php
$array5 = array(
"a" => "あいうえお",
"ka" => "かきくけこ",
"sa" => "さしすせそ"
);
?>
- こうやって揃えて見やすく描く事も重要なんだ。後で見たときに解りやすいからね☆
- なるほど確かに美しい!(笑)
- さぁ、これで配列も覚えたし、やれる事がどんどん広がるね☆
- うん、そうですね・・・。
- おや、なんか不満な顔してるね。

- うん、だって、配列の話でうまくごまかされたけど、結局おみくじ占いだけで、誕生日から星占い☆とか教えてもらえなかったし。。。
- あはは、そうだったね。じゃあ次回は、ユーザー入力の処理について学びながら、入力した情報を元に結果が変わる占いプログラムを作ってみようか。
- ほんとですか?!やった☆さすが先生、カッコいい♪
- ふふふ・・・任せなさい☆
- ようし、次回もがんばらなくっちゃ!
その他の記事も見る
- 第1回 PHPに触れてみよう!
- 第2回 PHPの基礎の基礎
- 第3回 占いソフトを作ろう - rand()関数、配列、連想配列 -
- 第4回 占いソフトを作ろう2 - データ取得・エスケープ・コメント挿入 -
- 第5回 様々なループ構造とPOSTによるデータ送信
- 第6回 入力チェックとエラー表示(1)
- 第7回 入力チェックとエラー表示(2)
- 第8回 セッションの仕組みを知ろう
- 第9回 セッションとHTTPヘッダーの基礎
- 第10回 スケジューラーを作ろう(1) - ファイル操作の基礎知識 -
- 第11回 スケジューラーを作ろう(2) - ファイルへの書き込み -
- 第12回 スケジューラーを作ろう(3) - データの書式整形と一覧表示 -
- 第13回 スケジューラーを作ろう(4) - CSSの基礎知識 -
- 第14回 スケジューラーを作ろう(5) - データの特定方法 -
- 第15回 スケジューラーを作ろう(6) - 削除処理、ユーザー定義関数 -
- 第16回 変数のスコープとデータ型
- 第17回 スケジューラーを作ろう(7) - 処理の関数化、任意の日付の取得 -
- 第18回 スケジューラーを作ろう(8) - タイムスタンプ -
- 第19回 スケジューラーを作ろう(9) - スケジューラー完成 -
- 第20回 掲示板を作ろう(1) -ユーザー定義関数と書き込みフォーム
- 第21回 掲示板を作ろう(2) -init関数とerrorcheck関数
- 第22回 掲示板を作ろう(3) -2重投稿チェックをしてCSVファイルに書き込む
- 第23回 掲示板を作ろう(4) -投稿した掲示板の内容を表示しよう
- 第24回 掲示板を作ろう(5) -掲示板の内容を10件ずつ表示しよう
- 第25回 掲示板を作ろう(6) -掲示板の管理者になって内容を削除しよう
- 第26回 掲示板を作ろう(7) -掲示板の内容を検索しよう
- 第27回 掲示板を作ろう(8) -掲示板についてまとめよう
- >>「Saity先生のPHP基礎講座」一覧ページに戻る
- Saity先生
本名:海原才人 アシアル株式会社所属
PHPスクール講師。同時に、現役システムエンジニアとしてシステム開発も行っている。
携帯電話でWebサイトが見られるようになった事をきっかけに、Webの普及の早さに驚愕し、Webプログラミングに興味をもつ。 その後、PHPによるWebプログラミングと出会い、その習得のしやすさと多機能さに魅了され、数多くのシステム開発をPHPでこなしてきた。 現在は、PHPの魅力とシステム開発で蓄積したノウハウをPHPスクールで多くの人に伝える事に熱意を燃やしている。
「教育において、教わる側が解からない事に罪はなく、教える側が興味を持たせられない事が罪だ」というのが講師としての信念。 生徒にPHPの面白さ・素晴らしさを伝えるため、魅力的な講義を展開する事に全力を注ぐ。





ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!