ウェピックスではウェブ界の情報をピックアップします!
menu
ホーム > PHPの文法 > 10 配列 > PHPの配列をマスターしよう!【基本から初心者向け】

PHPの配列をマスターしよう!【基本から初心者向け】

Pocket

PHP5 PHP7

目次


配列とは

POINT

  • 配列は複数の値をまとめたもの
  • 配列はデータを「キー」のペアにしている
  • 「キー/値」のペアになっているデータを配列の要素と言う
  • 配列には順序があり要素が追加された順に並んでいる

早速 配列を作って出力してみましょう!

実行結果
そば
ラーメン
うどん

そば
ラーメン
うどん

リンゴ
バナナ
オレンジ

リンゴ
バナナ
オレンジ

こんな感じです! 配列 では、 array()関数 や「 [・・・] (角括弧) 」を利用して複数の値を扱います。それでは詳しく説明していきましょう!

配列とは

配列とはPHPで扱うデータ型の1つで、複数の値をまとめたものです。(PHPのデータ型は、文字列型 整数型 浮動小数点数型 論理型 配列型 などがあります。)

配列はデータを「キー/値」のようにペアにして順序付きで管理します。キーは値に付けられた名前のようなものです。値は値そのものです。この「キー/値」のペアになっているデータを配列の要素と言います。配列には順序があり、要素が追加された順に並びます。

配列は複数の値を扱う

プログラム上の容器である変数は全てのデータ型を扱えますが、「文字列」や「数値」などを変数に代入した場合1つの値しか扱えません。ですが、配列を利用することで複数の値を扱うことが出来ます。変数についてはこちらを参照下さい。

実行結果
string(9) “文字列”
int(100)
array(3) { [0]=> string(6) “日本” [1]=> string(12) “アメリカ” [2]=> string(12) “イギリス” }

実行結果を見てみると、配列 $array には複数の値があることが分かります。因みにデータ型も表示されていますね。文字列型はstring、整数型はint、配列型はarrayと表示されています。
PHPでは配列に対して、要素の追加や削除、並び替え、検索、など、様々な操作が行えます!配列はプログラミング上必ず必要になる機能です。本ページでは、配列の宣言、作成、表示、操作、など多くの機能をご紹介いたします。


配列の種類

POINT

  • インデックス配列(キーは0からの数値)
  • 連想配列(キーは任意の文字列)

PHPには2種類の配列があります。 インデックス配列連想配列 です。

インデックス配列の「キー」は 0 から付与される整数値です。連想配列の「キー」は任意の文字列です。

インデックス配列と連想配列の違いは「キー」が整数値か文字列かの違いだけです。PHPの内部ではすべての配列を連想配列として管理しています。


配列の宣言(作成)と値の格納

POINT

  • [・・・] (角括弧) 」 で配列を作成
  • array() 関数 で配列を作成
  • 負の値のキー $number[-8] = -8;
  • 配列の初期化 $array = array();

配列を作成するには、「 [・・・] (角括弧) 」を使用する場合とarray()関数を使用する場合があります。


-1- 「[ ・・・ ] (角括弧)」を使用した配列の作成と値の格納

最初に配列を扱う変数=配列変数の名前を指定します。

$countries

配列要素の「キー」を角括弧で囲みます「 [キー] 」。この場合整数値 0 がキーです。

$countries[0]

代入演算子「 = 」を使用して配列に値を格納します。

$countries[0] = 'アイスランド共和国';

配列変数「$countries」は要素が1つあり、その要素のキーは「0」で値は「アイスランド共和国」です。


-2- 「[ ・・・ ] (角括弧)」でインデックス配列を作成

 「[ ・・・ ] (角括弧)」を使用してキーを整数値 0 から付与するインデックス配列を作成します。


-3- 「[ ・・・ ] (角括弧)」で連想配列を作成

 「[ ・・・ ] (角括弧)」を使用してキーを文字列にする連想配列を作成します。


-4- array()関数でインデックス配列を作成

array()関数を使用して配列を作成することが出来ます。要素間は「,(カンマ)」で区切ります。

実行結果
array(3) { [0]=> string(27) “アイスランド共和国” [1]=> string(18) “アイルランド” [2]=> string(33) “アゼルバイジャン共和国” }
array(3) { [0]=> string(27) “アイスランド共和国” [1]=> string(18) “アイルランド” [2]=> string(33) “アゼルバイジャン共和国” }

結果は同じです。


-5- array()関数で連想配列を作成

array()関数を使用して連想配列を作成することが出来ます。「=>」記号を使用して「キー/値」の要素を作成します。要素間は「,(カンマ)」で区切ります。

実行結果
array(2) { [“suzuki”]=> string(15) “suzuki@mail.com” [“yamada”]=> string(15) “yamada@mail.com” }
array(2) { [“suzuki”]=> string(15) “suzuki@mail.com” [“yamada”]=> string(15) “yamada@mail.com” }

結果は同じです。


-6- array()関数で連想配列を作成 キーを省略

array()関数を使用してキーを省略します。最初のキーだけ「=>」記号を使用して指定し、以降は省略します。値へのキーは自動的に付与されます。

実行結果
Array ( [1] => one [2] => two [3] => three [4] => four [5] => five )


-7- 配列の値の追加

[ ・・・ ] (角括弧)」を使用して配列末尾に値を追加することが出来ます。この方法はインデックス配列(キーが整数値)で使用します。追加されるとキーには数値が自動的に付与されます。数値インデックスを 0 から順番に進み最初に見つかった空き番号に要素を追加します。

実行結果
shida


-8- 配列の値の上書き

同じキーの配列に値を代入すると値が上書きされます。

実行結果
suzuki
KnjiSuzuki@mail.com


-9- 負の値のキー

インデックス配列のキーに負の値を設定できます。

実行結果
-8


-10- 配列の初期化

配列の初期化は

$ary= array();

とします。


配列へ表示(アクセス)

POINT

  • 文字列の「キー」はクォートする
  • 変数の「キー」はクォートする


配列の値にアクセス

 作成した配列の値を echo で表示させる。

実行結果
アイルランド
yamada@mail.com


文字列の「キー」はクォートする

連想配列の文字列のキーはクォートを使用するようにしましょう。そうすることで定数と見分けが付くようになります。

実行結果
アイルランド
yamada@mail.com


配列のキーを変数にする場合はクォートする

配列のキー名を変数で指定する場合はクォートして下さい。

実行結果
変数がキー名


多次元配列


「 [ ](括弧で) 」多次元配列を作成する

実行結果
suzuki
suzuki@mail.com
saitou
saitou@mail.com
tanaka
tanaka@mail.com

配列のキー名は値へアクセスする際の住所のようなものです。複雑な多次元配列でも最後に取り出す値は1つです。
例えば

実行結果
arai

配列へのアクセスを日本語にすると、$schoolchild という配列の
[6年][1組][男の子][3番][番号]は 3
[6年][1組][男の子][3番][名前]は arai
[6年][1組][男の子][3番][メール]は arai@mail.com
というふうに考えます。


多次元配列のインデックス配列をarray()で作成する

実行結果






多次元配列の連想配列をarray()で作成する

実行結果






配列操作


配列の大きさを取得

実行結果
3


範囲を指定して配列を作成

 range()関数を使用すると「数値」、「文字列」を値とする要素を指定した数だけ連続して作成します。最初の引数で数を指定します。次の引数で値となる数値か文字列を指定します。

実行結果
Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 )
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )


配列と変数の変換

POINT

  • extract()関数で配列を変数に変換

extract()関数で配列を変数に変換する

extract()関数を使用すると配列のキーが変数の名前になり、配列の値が変数の値になります。連想配列を引数とします。

実行結果
鈴木 suzuki@mail.com 男

この関数を使用した場合、生成する変数名と同じ変数名が存在していた場合、既存の変数を上書きします
それを避けるために以下のように引数を追加設定すると変数の衝突を防ぐことが出来ます。
1番目の引数:連想配列
2番目の引数:EXTR_PREFIX_ALL
3番目の引数:同じ変数名が存在していた場合、生成する変数名の先頭に追加する文字列

実行結果
鈴木 suzuki@mail.com 男


配列の展開

POINT

  • foreach構文を利用して配列を展開

配列の各要素の値にアクセスして表示させたり、何らかの操作を行ったりする場合がよくあると思います。その際の方法を説明します。

foreach構文を利用して配列を展開する

配列の値を展開

 配列をループ処理して各配列要素の値を echo で表示させています。foreach文は配列の並び順に従って順番に処理します。並び順は要素の追加された順です。

実行結果
現在の配列要素の値は[ 1 ]です。
現在の配列要素の値は[ 2 ]です。
現在の配列要素の値は[ 3 ]です。
現在の配列要素の値は[ 4 ]です。
現在の配列要素の値は[ 5 ]です。

配列のキーと値を取得する

配列をループ処理して各配列要素のキーと値を echo で表示させています。foreach文は配列の並び順に従って順番に処理します。並び順は要素の追加された順です。

実行結果
現在の配列要素のキーは[ name ]で値は[ TRY PHP! ]です。
現在の配列要素のキーは[ url ]で値は[ http://wepicks.net ]です。
現在の配列要素のキーは[ mail ]で値は[ info@wepicks.net ]です。


サンプルコード

– サンプル Click Here ! –

– サンプル Click Here ! –


配列関数サンプル


配列作成

  • 配列作成 都道府県配列
  • 配列作成 数値がキーのインデックス配列作成
  • 配列作成 文字列がキーの連想配列作成
  • 配列作成 多次元配列作成
  • 配列作成 範囲を指定して整数値の配列を作る「range()」
  • 配列作成 変数から配列を作成する「compact()」

  • 配列操作

  • 配列操作 配列の要素を追加する「array_pad()」
  • 配列操作 配列を分割する「array_chunk()」
  • 配列操作 配列の各要素にユーザ関数を適用する「array_walk()」
  • 配列操作 配列のキーと値が入れ替わる「array_flip()」
  • 配列操作 配列の要素のフィルタリングを行う「array_filter()」
  • 配列操作 配列の要素の削除と追加「array_splice()」

  • 配列検索

  • 配列検索 指定したキーが存在するかどうかのチェックをする「array_key_exists()」
  • 配列検索 配列に値があるか調べる「in_array()」
  • 配列検索 配列の値を検索し見つかった場合に対応するキーを返す「array_search()」

  • 配列ソート

  • 配列ソート 値によるソート 昇順(低い位から高い位へ)「sort()」
  • 配列ソート 値によるソート 降順(高い位から低い位へ)「rsort()」
  • 配列ソート 値によるソート ユーザ定義順「usort()」
  • 配列ソート 値によるソート 昇順(低い位から高い位へ)(キーと値の関係は維持)「asort()」
  • 配列ソート 値によるソート 降順(高い位から低い位へ)(キーと値の関係は維持)「arsort()」
  • 配列ソート 値によるソート ユーザ定義順「uasort()」
  • 配列ソート キーによるソート 昇順(低い位から高い位へ)(キーと値の関係は維持)「ksort()」
  • 配列ソート キーによるソート 降順(高い位から低い位へ)(キーと値の関係は維持)「krsort()」
  • 配列ソート キーによるソート ユーザ定義順「uksort()」
  • 配列ソート 複数配列を一括でソートする「array_multisort()」
  • 配列ソート 配列を逆順にソート「array_reverse()」
  • 配列ソート 配列の順番をランダムにする「shuffle()」

  • その他

  • 配列の大きさを取得「count()」
  • 配列を変数へ変換「extract()」
  • 配列の中身を確認(デバック)「var_dump()」
  • 配列の結合「array_merge()」
  • 配列要素を変数に格納「list()」
  • 配列取得 配列の一部を抽出する「array_slice()」
  • 配列取得 配列のキーを取得する「array_keys()」

  • タグ(=記事関連ワード)

    日付

    投稿日:2016年12月21日
    最終更新日:2017年06月17日

    関連記事

    配列関数サンプル

    このカテゴリの他のページ

    この記事へのコメント

    トラックバックurl

    http://wepicks.net/phpref-array/trackback/