Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. PHP入門編 - 配列とは

配列とは

みなさまどうもこんにちは。いかがお過ごしでしょうか。

さて、やってまいりました『配列』(はいれつ)の項目でございます。こちらも『変数』と同じく初心者の壁になりがちな項目です。ちょっと難しいかもしれませんが頑張っていきましょう。

まず「『配列』ってなにそれ?美味しいの?」って話なんですが、『配列』とは『連番が付けられた変数の集合体』です。「変数がグループ化されている」ということと「連番が付けられている」っていうのがミソです。もちろん食べ物ではございません。

なんのこっちゃってお話なんですが、例えば社員さんの名前を保存してその人数を出力したい、といった処理を構築する場合は社員さんの名前が入った変数をまとめてしまえればスマートな処理が構築できそうですよね。そんな時に『配列』が使用されます。

『配列』の具体的な使い方は次の項目で紹介したいと思うので今回は『配列』の定義方法をやっていきましょう。

一般的なプログラム言語の『配列』には連番を添字とする『添字配列』(数値添字配列)と特定の文字列を添字とする『連想配列』(ハッシュ)の2種類があります。

PHPも『添字配列』と『連想配列』が両方用意されているのですが、PHPの内部的には『同じもの』として扱われています。

他の言語では『添字配列』と『連想配列』で、定義方法や使用方法など厳密に分けられている場合が多いのですが、PHPではちょっと違う感じになっちゃってますね。

なので通常の『添字配列』の定義方法で『連想配列』も定義できてしまったりします。他言語に精通している方だとちょっと混乱してしまうかもしれませんので、そこは注意するようにしてください。

ちなみに普通に『配列』と言ったら『添字配列』のことを指すのが一般的ですので覚えておきましょう。

PHPでの『配列』の定義方法として古い時代からあるのが『array()』を使って実装する方法です。ちなみに『array』は「アレイ」って読みます。「あらい」じゃないですのでご注意を。というわけで以下が『array()』を使用した配列の作成方法です。

<?php
$arr = array();

『arr』に『array()』が代入されていますね。これで『arr』が配列として定義されたので配列『arr』は連番付きで色々なデータを入れることができるようになりました。

ちなみに配列に付けられた名前のことは『配列名』といいます。まあそのままなんですが覚えておいてください。

では配列の『0』番目に文字列『miku』を代入してみましょう。このような記述になります。

<?php
$arr = array();
$arr[0] = 'miku';

上記のように『配列名』の後に『[]』(角括弧、またはブラケット)を書き、そこに数字を入れてそこに好きな値を代入してあげます。これだけでOKです。

と、ここで注意点です。「『0』番目ってなんやねん!」って思った方いらっしゃると思います。なんとプログラミングにおいての連番は『0』から数え始めます。『1』からではございません。これは他のプログラム言語でも共通の事柄ですので覚えておいてください。

そして『配列』での添字(『0』番目とか『1』番目とか)のことを『インデックス』といいます。『インデックス番号』とも呼ばれますね。こちらも覚えておきましょう。

そして『array()』の『()』の中に入れたい値を『,』(コンマ、またはカンマ)区切りで記述していくと最初から値が代入された『配列』を生成することができます。以下のような感じですね。

<?php
$arr = array('miku', 'IA');

上記のサンプルでは配列『arr』が定義され、文字列『miku』と文字列『IA』が入ったって感じですね。

数値を入れたいときは以下のような記述になります。

<?php
$arr = array(100, 200);

PHP5.4から配列の定義に『array()』だけではなく『[]』が使用できるようになりました。以下のような感じですね。

<?php
$arr = []; // 『$arr = array();』と記述していることと同じです。

配列生成と同時に値を入れたい場合は『[]』の中に『,』区切りで値をいれていけばOKです。

<?php
$arr = ['miku', 'IA']; // 『$arr = array('miku', 'IA');』と記述していることと同じです。

『[]』をちょこんと書くだけで配列を生成できるのでとっても楽ちんです。最近では『[]』を使われるプログラマーさんがほとんどですのでこの記法も覚えておきましょう。

さて、これを出力させて確認してみましょう、といきたいのですがその前にまたもや注意点です。

これまでの記事で、変数の中身を出力するときに『echo』とか使っていましたよね。実は『echo』は配列の中身を展開して出力してくれません。『print』も然りです。ちょっと試してみましょう。先ほどのサンプルで定義した『配列』を『echo』を使って出力させてみます。

<?php
$arr = array('miku', 'IA');

echo $arr;

これを実行させると以下となります。(PHPのエラーレベルが『Off』の場合)

Array

「Array」ってちょこんと出力されているだけですね。こんな感じで『echo』では『配列』の中身を出力してくれません。

『配列』の中身が確認できない状態での開発になると中々手厳しいです。「ふぇぇ...はいれつのなかみをみたいだけなのに...どうすればいいのぉ...」となってしまいますよね。そこで登場するのが前の記事で紹介した『var_dump()』ちゃんです。先ほどの処理を『var_dump()』ちゃんで書き換えてみましょう。

<?php
$arr = array('miku', 'IA');

var_dump($arr);

これを実行するとこうなります。

array(2) {
  [0]=>
  string(4) "miku"
  [1]=>
  string(2) "IA"
}

めちゃめちゃ細かく出力してくれてます。これで配列の中身を確認しつつ開発を進めることができますね。

こんな感じで『var_dump()』ちゃんは聞いてないことまで色々と細かく教えてくれるので、何かの中身を確認したいときは『var_dump()』ちゃんを使用すると良いです。型までしっかり出力してくれるので『var_dump()』ちゃんは開発者の味方です。

では『var_dump()』ちゃんで出力した上記の表記の意味を見て行きましょう。まず最初の『array(2)』というところは「2つの要素を持った配列ですよー」って感じですね。配列に含まれたひとつひとつのデータを『要素』といいます。

続いての『[0]=> string(4) "miku"』ってところに注目です。ここで連番が登場していますね。これは「『0』番目の要素の値は4文字の文字列『miku』ですよー」って感じになります。『[1]=> string(2) "IA"』の部分も同じような感じで読み取って頂ければOKです。

さて、これで『配列』の定義と確認のための出力方法が終わったので、続いて配列の要素の取り出し方についてやっていきましょう。

配列のそれぞれの要素の値を取り出すには『[]』を使用します。先ほどのサンプルの『0』番目の要素を取り出すときは以下のような感じです。

<?php
$arr = array('miku', 'IA');

echo $arr[0];

先ほどの代入のときと大体同じですね。こんな感じで『[]』の中に取り出したいインデックス番号を入れればOKです。これを実行させると以下のテキストが返ってきます。

miku

バッチリですね。

ちなみに配列を丸ごと出力させるのではなく、配列の各要素をそれぞれ出力するような形ならば『echo』、または『print』とかを使ってOKです。配列とかを丸ごと出力して中身を確認するときとかは『var_dump()』、配列の各要素を普通に文字として出力させたい場合は『echo』、または『print』とかになります。ここがちょっとごっちゃになりがちなので注意して下さい。

というわけで長くなってきたので一旦記事を切ります。次の記事では『配列』の少しトリッキーな代入方法と注意点とかをみていきましょう。ではではこの辺で。失礼致します。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。