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

今回は、PHPでの連想配列の作成と、配列内のデータを取得・出力する例となります。

PHPの配列について

PHP の配列は、データ型の1つで複数のデータを順序付きで扱うことができます。扱うデータは、要素として「キー」と「値」のペアとなります。 

配列のキーは整数または文字列で指定し、値 は任意の型を指定します。PHP では、「キー」が整数の添字配列と、「キー」が文字列の連想配列に違いはなく、配列型は1つだけとなります。

今回の例では「キー」が文字列の連想配列を使用した例となります。

連想配列の作成|array()

array関数で連想配列を作成するには、キーと値を=>(ダブルアロー演算子)でペアとして要素を作成して配列を作成します。

以下は、array関数でキーが文字列の配列を作成する例となります。

<?php
// 配列のキーを文字列にする場合
$apes = array(
    'monkey'     => 'おさる',
    'chimpanzee' => 'チンパン',
);
?>

連想配列内のデータを取得・出力

配列の値を取得・出力する例

変数にセットした配列の値を取得するには、変数にキーを[ ](角括弧)で指定します。

以下は例となり、配列の値「おさる」を取得し出力しています。

<?php
$apes = array(
    'monkey'     => 'おさる',
    'chimpanzee' => 'チンパン',
);
echo $apes['monkey'];
?>

出力結果

おさる

配列のすべてのキーと値を取得・出力する例

foreachループでは、配列内のデータを繰り返し処理することで、配列内のデータを取得できます。

以下の例では、foreachループを使い配列のすべてのキーと値を取得して出力しています。

<?php
$apes = array(
	'monkey'     => 'おさる',
    'chimpanzee' => 'チンパン',
);
// 配列のすべてのキーと値を、変数$keyと$valueに代入し出力する場合
foreach( $apes as $key => $value ){
	echo $key . 'は' . $value . 'です。<br>';
}
?>

出力結果

monkeyはおさるです。
chimpanzeeはチンパンです。

連想配列の要素を追加・上書き

配列の要素を追加または上書きするには、配列変数にキーを[ ](角括弧)で指定し、=(代入演算子)で値を代入します。

新しいキー名の場合、指定した配列の最後に要素が追加され、既存のキー名の場合には値が上書きされます。

以下は、配列の要素を追加・上書きする例となります。

<?php
$apes = array(
    'monkey'     => 'おさる',
    'chimpanzee' => 'チンパン',
);
// 配列の最後に要素を追加
$apes[gorilla] = 'ゴリラ';
// キー名がmonkeyの値を上書き
$apes[monkey] = 'テナガザル';

// foreachループで出力
foreach( $apes as $value ){
	echo $value . 'です。<br>';
}
?>

出力結果

テナガザルです。
チンパンです。
ゴリラです。

連想配列の内容を確認

var_dump関数

配列だけに限ったことではありませんが、var_dump関数はデバッグで使用する関数となり、パラメータに指定したデータの型や値を含む構造化された情報を出力します。

以下は、var_dump関数を使い配列を出力する例となります。

<?php
$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バイトになる件 - 浜村拓夫の世界

参考サイト、参考書籍

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はコチラから。