【PHP】連想配列の作成と、連想配列のキー・値を取得し出力する例

今回は、PHPでの連想配列の作成と、連想配列のデータを取得・出力する例となります。
PHPの配列について
PHP の配列は、データ型の1つで複数のデータを順序付きで扱うことができ、扱うデータは要素として「キー」と「値」のペアとします。
配列のキーは整数または文字列で指定し、値 は任意の型を指定します。PHP では、「キー」が整数の添字配列と、「キー」が文字列の連想配列に違いはなく、配列型は1つだけとなります。
連想配列の作成
連想配列を作成するには、array()などを利用し、「キー」と「値」を=>(ダブルアロー演算子)でペアとして要素を作成し、配列とします。
以下、連想配列を作成する2種類の例となります。
// 連想配列をarray()で作成する例
$apes = array(
'monkey' => 'おさる',
'chimpanzee' => 'チンパン',
);
// 連想配列を短縮構文で作成する例
$apes = [
'monkey' => 'おさる',
'chimpanzee' => 'チンパン',
];
連想配列内のデータを取得・出力
配列の値を取得・出力する例
配列の値を取得するには、配列の変数にキーを[ ](角括弧)で指定します。
以下は例となり、配列の値「おさる」を取得し出力しています。
$apes = array(
'monkey' => 'おさる',
'chimpanzee' => 'チンパン',
);
echo $apes['monkey'];
出力結果
おさる
配列のすべてのキーと値を取得・出力する例
foreachループでは、配列を繰り返し処理することで、配列内のデータを取得できます。
以下の例では、foreachループを使い配列のすべてのキーと値を取得・出力しています。
$apes = array(
'monkey' => 'おさる',
'chimpanzee' => 'チンパン',
);
// 配列のすべてのキーと値を、変数$keyと$valueに代入し出力する場合
foreach( $apes as $key => $value ){
echo $key . 'は' . $value . 'です。<br>';
}
出力結果
monkeyはおさるです。
chimpanzeeはチンパンです。
連想配列の要素を追加・上書き
配列の要素を追加または上書きするには、配列変数にキーを[ ](角括弧)で指定し、=(代入演算子)で値を代入します。
新しいキー名の場合、指定した配列の最後に要素が追加されます。
以下は、配列の要素を追加・上書きする例となります。
$apes = array(
'monkey' => 'おさる',
'chimpanzee' => 'チンパン',
);
// 配列の最後に要素を追加
$apes['gorilla'] = 'ゴリラ';
// キー名がmonkeyの値を上書き
$apes['monkey'] = 'テナガザル';
// foreachループで出力
foreach( $apes as $value ){
echo $value . 'です。<br>';
}
出力結果
テナガザルです。
チンパンです。
ゴリラです。
連想配列の内容を確認
var_dump関数でデータを確認
配列内のデータを確認したい際に、利用できる関数の一つにvar_dump関数があります。
配列だけに限ったことではありませんが、var_dump関数では、パラメータに指定したデータの型や値を含む構造化された情報を出力します。
以下は、var_dump関数を使い配列を出力する例となります。
$apes = array(
'monkey' => 'おさる',
'chimpanzee' => 'チンパン',
);
var_dump( $apes );
出力結果
array(2) {
["monkey"] => string(9) "おさる"
["chimpanzee"] => string(12) "チンパン"
}
上記、array(2)と出力されている箇所では、指定したデータが配列型で配列の要素が2つあることを示しています。
その配列の要素が、["monkey"] => string(9) "おさる"のような形式で出力され、「キー」と「値のデータ型」と「値」を示しています。また、string(9)は "おさる"という値が、文字列のデータ型でバイト数が9ということを示しています。
また、全角文字のバイト数に関しては、以下のリンク先を参考にしてみてください。
PHPのstrlen関数で全角文字が3バイトになる件 - 浜村拓夫の世界
var_dump関数の出力結果を整形
var_dump関数でデータを出力する際、実際には上記のように改行はされません。var_dump関数の出力結果を整形する場合には、以下のリンク先を参考にしてみてください。