【PHP】配列(array)の使い方をわかりやすく解説!!
配列とはデータの塊の事です。
1つの変数の中に、複数の値を入れることが出来ます。
例えば、LINEの友達を変数に入れるとなると、友達の数だけ変数を作らないといけないので、管理するだけでも大変です。
なので複数データがある場合は、1つの変数だけで複数のデータが入れれる配列を使った方が便利なのです。
ここでは初心者でもわかりやすいサンプルコード付きで丁寧に配列(array)について解説していきます。
arrayの構文
先ほども言いましたが、PHPでは、このarray()関数を使用して配列を作成します。
PHPでは、3種類の配列があります。
・インデックス付き配列: 数値のインデックスを持つ配列
・連想配列: 名前付きキーを持つ配列
・多次元配列: 1つ以上の配列を含む配列
配列の使い方
配列はarray()の()の中に任意のタイプの要素を格納fできます。
そして、値を配列のインデックス(番号)を指定することで、その番号の中にある値を取り出すことができます。
インデックスはゼロから始まりますので注意してください。
配列を使った例をみてみましょう。
例
1 2 3 4 5 6 7 8 9 10 |
<?php $str = array(""あ"", ""い"", ""う"", ""え"", ""お""); echo $str[2], ""\n""; echo $str[0], ""\n""; echo $str[4], ""\n""; ?> |
出力結果
う
あ
お
連想配列の使い方
これらのタイプの配列は、インデックス付き配列に似ていますが、線形ストレージの代わりに、
すべての値に文字列タイプのユーザー定義のキーを割り当てることができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $str = array("鈴木太郎"=>"太郎", "石川一郎"=>"一郎","佐藤圭佑"=>"圭佑","田中真"=>"真"); $str["鈴木太郎"] = "太郎"; $str["石川一郎"] = "一郎"; $str["佐藤圭佑"] = "圭佑"; $str["田中真"] = "真"; echo $str["鈴木太郎"], "\n"; echo $str["石川一郎"], "\n"; echo $str["佐藤圭佑"], "\n"; echo $str["田中真"], "\n"; ?> |
出力結果
太郎
一郎
圭佑
真
キーを指定する例
1 |
$array = array('apple'=>'りんご', 'peach'=>'もも', 'pear'=>'なし');" |
また、部分的にキーを指定することもできます。
部分的にキーを指定する例
1 |
$array = array('バナナ', 'apple'=>'りんご', 'peach'=>'もも', 'pear'=>'なし', 'みかん');" |
配列を結合する方法
配列を結合するにはarray_merge()を使います。
array_merge()は配列Aと配列Bをマージ(結合)することができます。
例
1 2 3 4 5 6 |
$fruits1 = ['リンゴ', 'オレンジ', 'メロン', 'バナナ', 'パイナップル']; $fruits2 = ['strawberry', 'cherry', 'watermelon']; $fruits_merge = array_merge($fruits1, $fruits2); print_r($fruits_merge); |
出力結果
Array
(
[0] => リンゴ
[1] => オレンジ
[2] => メロン
[3] => バナナ
[4] => パイナップル
[5] => strawberry
[6] => cherry
[7] => watermelon
)
配列$fruits1と$fruits2を作成し、array_merge関数を使用して$fruits1の後ろに$fruits2を結合しています。
配列を追加する方法
[](角カッコ)をつける例
配列に追加する方法は[](角カッコ)をつけます。
これはが一番シンプルな方法だと思います。
[](角カッコ)は以下のようになります。
1 |
$追加したい配列の変数[] = 追加する値 |
上記のように追加したい配列に[](角カッコ)を付けて=(イコール)で代入すると、どんどん値が配列に追加されます。
あまりにも数が膨大になると大変ですが、追加する値が少なければこの方法が良いでしょう。
ここで[]を使った例を見てみましょう。
1 2 3 4 5 6 7 8 |
$members = array('nagasawa', 'kitagawa', 'nishina'); $members[] = 'shinoda'; $members[] = 'sano'; $members[] = 'sakuraba'; print_r($members); |
出力結果
Array ( [0] => nagasawa [1] => kitagawa [2] => nishina [3] => shinoda [4] => sano [5] => sakuraba )
shinodasanosakurabaが配列の最後に追加され、6人で出力されました。
array_push関数で追加する例
配列に追加する際によく使われるのがarray_push()による追加です。
これは複数の配列を一気に追加する際に便利な関数です。
1 2 3 4 5 6 7 8 |
<?php $members = array('nagasawa', 'kitagawa', 'nishina'); array_push($members, 'shinoda', 'sano', 'sakuraba'); print_r($members); ?> |
出力結果
Array
(
[0] => nagasawa
[1] => kitagawa
[2] => nishina
[3] => shinoda
[4] => sano
[5] => sakuraba
)
array_pushの構文
1 |
array_push ( 追加先の配列 , 追加する値 (, 追加する値…) ); |
追加したい配列を第一引数に設定し、第二引数以降は追加する値をカンマ区切りで追加していきます。
追加する値が多い場合はarray_push()を使うと良いでしょう。
array_pushのエラー
array_push()の第一引数は必ず配列じゃないといけません。
配列以外だと以下のエラーが出ます。
配列の値を置換する方法
配列の値を置換するにはarray_splice()関数を使用します。
array_splice()は、配列の一部を切り取り、そこに新しい要素を挿入する関数です。
切り取る要素、または挿入する要素のどちらか一方をなしにすれば、単純な削除、または挿入ができます。
この関数は元の配列に変更を加えます。
1 |
array array_splice ( array &$input , int $offset [, int $lenght = count($配列) [, mixed $replacement = array() ]] ) |
・&$input
対象の配列。
・$offset
切り取りを開始する位置までのオフセット。例えば2を指定した場合、3つ目が開始位置となる。負の数を指定した場合は、最後の要素が-1、その1つ前が-2というように末尾から数えた位置となる。
・$length: 初期値はcount($配列)
切り取る要素の数。デフォルトでは、第2引数で指定した位置以降の全ての要素を切り取る。負の数を指定した場合、最後の要素までが-0、その1つ前までが-1というように末尾から数えた位置が最後の切り取り位置となる。
・$replacement: 初期値はarray()
新しく挿入する要素を一覧にした配列で指定する。配列で指定しなかった場合、内部で配列に型変換される。
・返り値: array
切り取った部分の配列
1 2 3 4 5 6 7 8 9 10 |
<?php $alpha = ["a", "b", "c", "d", "e"] ; $result = array_splice( $alpha, 1, 3, ["A", "B"]); echo( $result ) ; echo ""\n"" ; echo( $queue ) ; ?> |
配列の値を検索する方法
要素を検索するには array_search() 関数を使います。
array_search()は配列内に指定した値の要素が見つかった場合、見つかった要素の位置を返します。
PHPのこの組み込み関数は、配列内の特定の値を検索するために使用され、値が見つかった場合、対応するキーを返します。
複数の値がある場合、最初に一致した値のキーが返されます。
array_search()関数は以下のようになります
1 |
array_search($値、$ 配列、オプション) |
この関数は、以下に説明する3つのパラメータを取ります。
・$値
配列内で検索する必要がある値を参照します。
・$配列
検索する必要がある元の配列を参照します。
・$オプション
trueまたはfalseに設定でき、検索の厳密さを示します。このパラメーターのデフォルト値はfalseです。
trueの場合、関数は同じ要素をチェックします。falseの場合、厳密性は維持されません。
・戻り値
関数は渡された対応する値のキーを返します。
見つからない場合、falseが返され、一致するものが複数ある場合は、最初に一致したキーが返されます。
array_search()関数を使った例を見てみましょう。
例
2
WriterST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。