PHP講座#9

今回の記事もPHP講座です!ここらへんでPHP講座の1/3ぐらいまで勉強したことになります。この調子で頑張っていきましょう!!

前回の復習

 前回の記事では定数の書き方について学びましたね。
 const を使った書き方と、define関数を使った書き方がありました。

前回の練習問題の解答

1問目

 定数PIに3.14を入れて半径3の円の面積を計算してください。ただし定数の宣言*1をするときにconstを使ってください。



解答

<?php
$radius = 3;
const PI = 3.14;
echo ($radius * $radius * PI) . "<br>";
?>

2問目

 定数PIに3.14を、定数Rに3の3乗を入れて、半径3の円の体積を計算してください。ただし定数の宣言をするときにdefine();を使ってください。



解答

<?php
define("PI", 3.14);
define("R", 3 ** 3);
echo (4.0 * PI * R / 3.0) . "<br>";
?>

今回の学習内容

 今回はいよいよ配列について学んでいきます。

 配列というものを紹介する前に次のコードを眺めてみましょう。(読んで処理が終えていれば、書かなくてもいいですよ)

<?php
/*ボーリングの得点*/
$score_1 = 100;
$score_2 = 140;
$score_3 = 98;
$score_4 = 165;
$average = ($score_1 + $score_2 + $score_3 + $score_4) / 4.0;
echo $average. "<br>";
?>

 このコードを見て何か思いませんでした?
 とても面倒くさいコードだなと考えた人はいい勘してますね。(今回は4つしか変数を作ってないのであまり面倒だなと感じなかった人もいるかもしれませんが、100回ゲームをしたら……と考えてみると面倒くさいなと思うことでしょうw)
 ゲームを1回やるごとに得点を入れる変数をわざわざ作るのは大変ですし、それに似たもの同士はまとめて扱えた方が嬉しいですよね?
 そんなことができればいいのになあ……。

 そんなあなたには配列をお勧めします!
 配列というのは複数の値をまとめて格納できるもので、変数(値を入れる箱)がたくさん並んだロッカーみたいなイメージを持つとわかりやすいでしょう。
 配列の文法はこんな感じです。

$変数名 = array(値1, 値2, 値3);
これ以外にも配列を作る方法はありますが、順番に紹介していきます。

 最初に、次のソースコードを試してみましょう。

<?php
$food = array("apple", "egg", "fish", "rice");
echo $food[3]."<br>";
?>

rice
 このソースコードを1行ずつゆっくり見ていきましょうか。

$food = array("apple", "egg", "fish", "rice");
 この行では、foodという名前の配列を作り、前から順に、"apple", "egg", "fish", "rice"という値を入れています。ただし注意点がひとつありまして、PHPに限らず、プログラミングにおいて配列の一番最初のロッカーは、0番目と数えます。そこから順番に1番目、2番目、...と数えていくことになるので、間違えないように気をつけてくださいね。

echo $food[3]."<br>";
 この部分は、配列の前から4つめの部分に格納されている値を表示しています。先ほど述べたように、配列の数え方は要注意です。また、配列の各要素の値を取り出すためには、[ ] の中で、取り出す場所を指定する必要があります。

 いくつか、コードを書いて慣れていきましょう。

<?php
$animal = array("cat", "dog", "lion", "rabbit", "horse");
echo $animal[1]."<br>";
$animal[1] = "giraffe"; //このように配列の要素を後から書き換えることもできます。
echo $animal[1]."<br>";
?>

dog
giraffe
 配列の中身は、[ ]を使うことで書き換えることもできます。

<?php
$color[] = "red";
$color[] = "yellow";
echo color[0]."<br>";
echo color[1]."<br>";
?>

red
yellow
 このようにarray関数を使わなくても、配列を作ることもできます。ただし、[ ]の中身を指定しないと、現在扱っている配列のインデックス*2の最大値の次の値が割り当てられるようになっています。(例えば、$color[5]が既に存在しているときに、$color[] = "black"; という処理を実行すると、インデックスが6の要素にblackという文字列が格納されます。このとき、$color[4]などが存在していない場合でも同様の処理がおきますが使い道はほとんどないと思いますので、あまり気にしなくても良いのかもしれません)

 最後に連想配列について説明して今回の記事を締めくくります。連想配列とか難しそうな名前をしていますが、非常にシンプルです。0番目、1番目とか呼ぶのがわかりにくいから、名前をつけて管理しようよということでつけられた機能なので、普通の配列とほとんど違いはありません。基本的な文法は、こんな感じです。(配列の時との差分に色をつけておきました)

$変数名 = array("管理用の名前1"=>値1, "管理用の名前2"=>値2, "管理用の名前3"=>値3);

 それでは実際にソースコードで理解していきましょう。

<?php
$animal = array("cat"=>"猫", "dog"=>"犬", "lion"=>"ライオン", "rabbit"=>"うさぎ", "horse"=>"馬");
echo $animal["dog"]."<br>";
?>

 このようにインデックス部分に文字列を扱えるようになります。

 次回の記事では、今回の配列を応用した2次元配列について学んでいく予定です。
 また、配列の連結及び要素の追加にいくつか方法があるのでそれについて詳しく書いていきます。

まとめ

 今回は、配列について学びました。配列というのは、同じ型のデータをまとめて扱うために考えられた、データの格納方法のことでした。
 次回は、二次元配列について勉強していきましょう。

練習問題

1問目

 array関数を使って、4個の要素をもつ配列を作ってみてください。(各要素の値はお任せします)

2問目

 配列を[ ] を使って、3つの要素をもつ配列になるように作ってください。

3問目

 次の連想配列のソースコードを試してみてください。またそれぞれのインデックスの要素の値をechoを用いて出力してみてください。

<?php
$noun = array("black", "cat"=>"猫", "dog"=>"犬", "lion"=>"ライオン", "rabbit"=>"うさぎ", "yellow", "horse"=>"馬", "red", "blue");
echo $noun["lion"]."<br>";
echo $noun[0]."<br>";
?>

最後まで見ていただきありがとうございます。また別の記事でお会いできることを祈っております。



www.iwachoco-blog.com
www.iwachoco-blog.com


*1:定数の入れ物を作ること

*2:[ ] の中の値のこと