皆さん、こんにちは。穂苅智哉と申します。
このコラムでは、私が PHP8技術者認定初級試験のための公式問題集(PHP8 技術者認定初級試験公式問題集)で学習した内容やポイントを取り上げて解説をしていくものです。P39~45 のChapter 4 配列を学習してみました。
PHP8の配列の使い方
PHPの配列(array)は、公式ドキュメントではこのように説明されています。
PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、値をキーに関連付けます。この型は、さまざまな使い道にあわせて最適化されます。配列としてだけでなく、リスト (ベクター)、ハッシュテーブル (マップの実装の一つ)、辞書、コレクション、スタック、キュー等として使用することが可能です。 PHP の配列には他の PHP 配列を値として保持することができるため、非常に簡単にツリー構造を表現することが可能です。
参考: https://www.php.net/manual/ja/language.types.array.php
もう少し噛み砕くと、配列というのは複数の値を1つの変数に格納する機能のことを指します。複数の値を1つの変数に格納することで、複数の値の効率的な管理と処理が可能になります。
PHPはarray() で作成する
PHPの配列は、array() を使って作成ができます。ちなみに現在では、[] を使って配列を表現する事もできるため、どちらを利用するかはそれぞれのプロジェクト内での取り決めで統一させたほうが良いようです。
つまり、以下の2つの配列は同じ意味になります。
<?php $value = array( ‘red’, ‘yellow’, ‘green’ ); |
<?php $value = [ ‘red’, ‘yellow’, ‘green’ ]; |
また、配列は順番付けられているため、インデックスが付いています。そのため上記の場合、特定のデータを取り出す場合に0から始まるインデックスでアクセスができます。
例えば、このようになります。
echo $value[0]; //出力は、red |
今回作った配列に要素を追加する場合も気になります。問題集にいい問題がありました。皆さん、この場合の配列構成はどうなると思いますか。どのキーにどの値が設定されるのかがポイントです。インデックスは0から数えるんですよね。
<?php $colors = []; $colors[1] = ‘blue’; $colors[] = ‘green’; ?> |
正解は、インデックス1にblue, インデックス2にgreenが設定されます。
Array ( [1] => blue [2] => green ) |
これは、先に記述したblueはインデックス1で指定しており、その後のgreenはインデックスの指定がないためインデックスが自動で設定されます。この際のルールは、該当の配列で使用されているインデックスの最大値+1かつ0以上となります。
更に、インデックスが使えるということは、キーとバリューを使った表現も可能になります。これを連想配列と呼びます。
連想配列
連想配列のほうが個人的にはわかりやすいと思いました。連想配列は、通常の配列で割り振られている0から始まる番号(インデックス)に名前をつけて管理する配列です。書き方は、配列を作る際にその中の要素として、キーと値を設定していきます。出力する際には、キーとインデックスで取得する事ができます。
<?php // 連想配列を作成 $fruits = [ ‘red’=>[‘さくらんぼ’,’りんご’,’いちご’], ‘yellow’=>[‘レモン’,’バナナ’,’マンゴー’], ‘green’=>[‘メロン’,’スイカ’,’キウイ’] ]; // 「いちご」を出力させてみる echo $fruits[‘red’][2] ?> |
より直感的に配列を理解することができます。
PHP8技術者認定初級試験で正しいPHPの理解を
今回は、PHPの基礎の1つである「配列」を取り上げました。配列はこの他にもいろいろなパターンがありますので、まずは基礎を覚えてから応用に進んでいくのが良いと思いました。
次回以降もPHPで学習した内容をシェアしていきますので、よろしくお願いいたします。
また、PHPの学習やエンジニアになるためのマイルストーンとして、PHP試験はおすすめです。PHP8技術者認定初級試験はPHPを扱うあらゆる方にとって有益な試験になるはずですので、ご興味がある方はぜひチャレンジしてみてください。
試験ページ: PHP8初級試験
公式問題集:PHP8 技術者認定初級試験公式問題集