リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

6-1. PHPの配列①おさらいと連想配列

ついにきたきた6章!
前の私と同じ場所にきました。そして7/5にブログをはじめてほぼ1カ月。ちゃんと続いた…正直結構おどろきかも笑
21章まで長いけどがんばろー

PHP基礎の最後は配列です。3章でも一次元配列多次元配列について触れましたが、今回は配列を使ってできることを見ていきます。

1-1.配列おさらい


変数は箱のように機能し、配列は複数の箱を持った変数と考えることあできます。

箱は左から順番に番号がついていて(インデックス化)、1からではなく、0からカウントします。

1-2.配列の作成


配列の作成は2種類あります。
①array関数を使う

$data = array(データ1,データ2,データ3)
?>

②[]を使う


$data = [データ1,データ2,データ3]

2-1.連想配列


連想配列は配列に入った箱に任意の名前を付けることで箱を識別します。会員1人分の名前や住所、電話番号などのデータを操作するときに活用できます。
他の人がコードを見た時も、インデックス番号だと、何番目に何があるかがすぐにわからないですが、名前を見たときにもわかりやすいです。


<?php
$paper['copier'] = "Copier & Multipurpose";
$paper['inkjet'] = "Inkjet Printer";
$paper['laser'] = "Laser Printer";
$paper['photo'] = "Photographic Paper";

echo $paper['laser'];
?>

結果はこう
f:id:taro-blog2323:20160802233806p:plain

2-2.array関数を使う


arraya関数で連想配列を作成するには、「=>を使って、箱につけた名前と値の関連付けを指定する必要があります。
array関数の()の中に「名前=>データ」を指定します。


<?php
$p1 = array("Copier", "Inkjet", "Laser", "Photo");

echo "p1 element: " . $p1[2] .;

$p2 = array('copier' => "Copier & Multipurpose",
'inkjet' => "Inkjet Printer",
'laser' => "Laser Printer",
'photo' => "Photographic Paper");

echo "p2 element: " . $p2['inkjet'] . ;
?>


結果はこう。p1が普通のarrayで2番(左から3番目)が出力され、p2はlaserと名前がついたデータを出力します。
f:id:taro-blog2323:20160802234822p:plain


3-1.foreach...asループ


foreach...asループを使うと、配列内の全アイテムを1つずつ処理します。最初のアイテムではじまり、最後のアイテムで終わるので配列にアイテムが何個あるかを知る必要がありません。
以下コードを見てみます。

<?php
$paper = array("Copier", "Inkjet", "Laser", "Photo");
$j = 0;

foreach ($paper as $item)
{
echo "$j: $item<改行>";
++$j;
}
?>


結果はこう。
f:id:taro-blog2323:20160803000752p:plain

連想配列で使ってみると


<?php
$paper = array('copier' => "Copier & Multipurpose",
'inkjet' => "Inkjet Printer",
'laser' => "Laser Printer",
'photo' => "Photographic Paper");

foreach ($paper as $item => $description)
echo "$item: $description<改行>";
?>

結果はこう。配列$paperの各アイテムは、名前(キー)と値のペアである変数$itemと$descriptionとして処理され、その値が毎回使用されます。
f:id:taro-blog2323:20160803001038p:plain

いじょー
とにかく6章にいきたかったので進めてしまいましたが
オブジェクトについてめちゃくちゃわかりやすい例えをおしえてもらたので次回書き留めます。