こんにちは、
少し良い椅子を買おうか検討中のサトウです。
さて、本題に入りたいと思います。
phpの学習を始めると、「連想配列」を目にする機会も増えてくるのではないでしょうか。
「連想配列」の使い方や活用方法について、理解できない方も少なくないのでは、、、。と思い、今回は「連想配列」について分かりやすく説明していきます。
phpを学び始めた方や、「連想配列」について分からない方は、是非読んでみてくださいね。
目次
連想配列とは
連想配列とは、文字(数値)をkey(キー)として値を設定した配列のことです。プログラミングにおける配列とは各値は順に0番目、1番目、2番目と番号が振られた箱に値が入っているものでした。連想配列は配列の「0番目」「1番目」といった数字部分を任意の文字(数値)を設定して利用することができます。
サンプルのコードでも確認してみましょう。
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php // (1)配列の場合 $fruit = array('orange','apple','grape','banana'); // 配列の中身を展開 echo '配列は[0]番目→[1]番目→[2]番目→[3]番目と表示される<br>'; print_r($fruit); echo '<br/>'; echo '<br/>'; // (2)連想配列の場合 $meat = array(500 => 'pork',501 => 'chicken',502 => 'beef'); // 連想配列の中身を展開 echo '連想配列はkeyの部分を自由に決めることができる<br />'; print_r($meat); echo '<br/>'; echo '<br/>'; |
実行結果
配列はkeyが[0][1][2]と決まっていますが、連想配列の場合は「500」「501」となっています。このkeyを自由に決めて配列を作ることができることが連想配列の最大の特徴です。これが連想配列の基本的な考え方となります。
連想配列の使い方
連想配列の基本的な考え方を理解できたところで、ここからは作り方や活用方法を説明していきます。
連想配列を作る
連想配列を作成する際は「key」の部分と「値」を決めて以下のように書きます。
配列名 = array(key名1 => 値1,key名2 => 値2,key名3 => 値3,key名4 => 値4);
配列名:任意で定義する
array():array()の中に以下を記述
key名:中身が入っている添字(番号)
値:配列の中身
コードサンプル
1 2 3 4 5 6 7 8 |
<?php // 連想配列の場合 $season = array('春' => 'spring','夏' => 'summer','秋' => 'autumn','冬' => 'winter'); // 連想配列の中身を表示 print_r($season); echo '<br/>'; |
実行結果
「春」「夏」といったkeyに「spring」「summer」という値が格納されているのが確認できましたね。
連想配列の中身を取得する
連想配列の中身を表示・展開していくにはforeach関数を使います。
foreach関数の書き方
foreach(配列名 as $key => $value){
実行する処理を記述
}
配列名:任意で定義する
array():array()の中に以下を記述
key名:中身が入っている添字(番号)
値:配列の中身
コードサンプル
1 2 3 4 5 6 7 8 9 10 |
<?php // 連想配列を定義 $animal = array(1 => 'cat',2=> 'dog',3 => 'rabbit'); // foreach関数で中身を展開 //配列名 as $key => $valueで連想配列の中身をすべて表示できる foreach ($animal as $key => $value) { echo '連想配列の'.$key.'番目は'.$value.'です<br>'; } |
実行結果
foreachは配列の中身をすべて展開させる(ループ処理)ことが可能です。
foreachはデータベースから取得した情報を表示する際等に頻繁に利用する関数なので、是非様々な情報を入れて試してみてください。
連想配列(応用編)
ここまでは連想配列を作って展開する所まで解説しました。ここからは知っておけばさらにプラスになる連想配列に関連する関数を紹介していきます。
array_search:配列の値を検索し、値を返す
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 |
<?php // 連想配列の定義 $animal = array(1 => 'cat',2=> 'dog',3 => 'rabbit'); // array_search(検索する値,検索対象の配列名)で // 値のkeyを検索する $result = array_search('dog',$animal); // echoで画面表示 echo $result;//dogのkeyは「2」なので「2」と出力される |
実行結果
in_array:配列の値を検索し、trueかfalseを返す
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php // 連想配列の定義 $animal = array(1 => 'cat',2=> 'dog',3 => 'rabbit'); // in_array(検索する値,検索対象の配列名)で値のkeyを検索する $result1 = in_array('cat',$animal); $result2 = in_array('dog',$animal); $result3 = in_array('cow',$animal); // echoで画面表示(結果はtrueかfalseで返ってくる) var_dump($result1);//true echo '<br>'; var_dump($result2);//true echo '<br>'; var_dump($result3);//cowは配列にないのでfalse echo '<br>'; |
実行結果
array_shift:配列から先頭の値だけを取り出す
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // 連想配列の定義 $animal = array(1 => 'cat',2=> 'dog',3 => 'rabbit'); $city = array('東京' => 'tokyo','大阪' => 'osaka','名古屋' => 'nagoya'); // array_shift(連想配列名)で先頭の値を取り出す $result1 = array_shift($animal); $result2 = array_shift($city); //結果を表示 echo $result1;//配列の先頭は「cat」 echo '<br>'; echo $result2;//配列の先頭は「tokyo」 echo '<br>'; |
実行結果
array_keys関数:連想配列のkey部分のみを取得する
コードサンプル
1 2 3 4 5 6 7 8 9 |
<?php // 連想配列の定義 $drink = array(1 => 'juice',2 => 'tea',3 => 'water'); //array_keys(配列名)で配列のkeyを取得する $result = array_keys($drink); var_dump($result); echo '<br>'; |
実行結果
参考:多次元配列
多次元配列は配列の中に配列が入っています。
少し複雑なので、ここでは参考に留めておきます。
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php //多次元配列は配列の中に配列が入っている //ここでは二次元配列の例を記載します $fruits = array( 'cherry' => array( 'quantity' => 31, 'origin' => '山形県' ), 'apple' => array( 'quantity' => 15, 'origin' => '長野県' ), 'orange' => array( 'quantity' => 23, 'origin' => '愛媛県' ) ); // 表示 echo 'さくらんぼの産地は'.$fruits['cherry']['origin'].'です<br>'; echo 'りんごの個数は'.$fruits['apple']['quantity'].'です<br>'; |
実行結果
連想配列の作成・foreachでの展開方法と併せて、参考にしてみてください。
まとめ
いかがでしたか?今回は、phpで連想配列について説明しました。
プログラミングを学び始めた頃は「配列」と「連想配列」違いがわからず、難しく感じることあると思います。ですが実際に連想配列を作り、関連する関数を使う練習をこなしていけば必ず理解できる日が来ますので、焦らずにゆっくりと理解を深めていってくださいね。
この記事が、phpの学習に役立つと嬉しいです。