キーの指定
配列で要素を作成したり要素から値を取り出すにはキーを指定する必要があります。PHPの配列ではキーとして整数と文字列を使用することができます。
キーに整数を指定する場合は正の数に加えて負の数も指定することが可能です。
$var[0] = 14; $var[2] = 'Tokyo'; $var[-4] = 8400;
複数の要素を作成する場合、キーは連続した整数である必要はありません。
キーに文字列を指定する場合は、シングルクオーテーションなどで括る必要があります。
$var['yamada'] = 86; $var["endou"] = 75; $var['aichi'] = 'nagoya';
※文字列をクオーテーションで括らずに指定した場合、エラーとはなりませんが未定義の定数が指定されたものとして扱われます。必ずシングルクオーテーションなどで括って指定するようにして下さい。
なおキーが整数を表す数字で構成された文字列だった場合には整数が指定されたものとして扱われます。次の例を見てください。
$var['8'] = 75;
この場合、キーには文字列が指定されていますが文字列は整数の8を表す文字列のため、次のように整数のキーが指定されたものとして扱われます。
$var[8] = 75;
キーが数字で構成された文字列であっても先頭に0が付いた「08」のような文字列の場合はキーは文字列の「08」のままです。
$var['08'] = 75;
この場合のキーはあくまで文字列の「08」です。
変数や定数を使ってキーを指定する
キーには整数や文字列を直接記述するだけではなく、整数や文字列が格納された変数を指定することもできます。
$key = 'peach'; $var[$key] = 120;
またキーとして文字列を指定した場合に文字列の中に変数を記述して変数展開をすることも可能です。
$key = 'peach'; $var["price_$key"] = 120;
キーとして定義された定数を使って指定することも可能です。
define("INDEX_KEY", 8);
$var[INDEX_KEY] = 120;
サンプルプログラム
では簡単なプログラムで試して見ます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>PHPテスト</title>
</head>
<body>
<p>PHPのテストです。</p>
<pre>
<?php
$key = 'peach';
$var["price_$key"] = 120;
define("ORANGE", 'price_orange');
$var[ORANGE] = 86;
print_r($var);
?>
</pre>
</body>
</html>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
( Written by Tatsuo Ikura )
PHPBook