>>この記事には書き直した新しいページがあります。<<
<<前 [TOP] 次>>
PHPでは二通りの方法で配列生成ができます。
ひとつは記号を用いる方法です。
$変数[] = 値;
[ ]内のインデックスは、数値以外でも良いです。
特に指定がない場合は「0」から始まります。
またインデックスを指定しない場合のインデックスは、その前のインデックスに+1したものが自動的にふられます。
以下のPHPプログラムをメモ帳で作成して、「phpsample」フォルダに保存して下さい。
【arraytest1.php】
<p>配列のテスト</p> <?php $data[] = "test1"; $data[] = "test2"; //配列の内容を表示 print_r($data); print("<br>"); $data[1] = "test3"; //配列の内容を表示 print_r($data); print("<br>"); $data['1'] = "test2"; //配列の内容を表示 print_r($data); print("<br>"); $data[] = "test4"; //配列の内容を表示 print_r($data); print("<br>"); //print()で${data['0']のみ表示 print("${data['0']}<br>"); $data['test5']="test5"; //配列の内容を表示 print_r($data); print("<br>"); ?>
print_r()は、配列の中身を表示させるのに用います。
$data[] = "test1"; $data[] = "test2";
このように[]の中に何も指定しない場合、[0]から[1][2]・・と順番に格納されていきます。
$data[1] = "test3"; $data['1'] = "test2";
このように[1]や['1']と順番を指定すると、[1]の配列のみが上書き格納されます。
記述方法はどちらでも良いです。
$data[] = "test4";
途中でまた[]の中に何も指定しない場合、空いている場所に格納されます。
print("${data['0']}<br>");
このようにすると、指定した場所のみを表示させることが出来ます。
$data['test5']="test5";
[ ]内のインデックスは、数値以外でも良いです。
Apacheを起動し、Webブラウザで「http://localhost/phpsample/arraytest1.php」にアクセスして実行結果を確認してください。
配列生成のもうひとつの方法はarray()を使うことです。
$変数 = array(値, 値, 値);
array()を使用した場合のインデックスも特に指定しなければ「0」から始まります。
インデックスを指定したければ配列演算子の「=>」を使用します。
$変数 = array(インデックス=>値, インデックス=>値, インデックス=>値);
以下のPHPプログラムをメモ帳で作成して、「phpsample」フォルダに保存して下さい。
【arraytest2.php】
<p>配列のテスト</p> <?php $data1 = array(0, "1", 2, 3, "test", "テスト1"); print_r($data1); print("<br>"); $data2= array('test'=>"テスト2", 'index'=>"テスト3"); print_r($data2); print("<br>"); print("${data2['test']}<br>"); ?>
Webブラウザで「http://localhost/phpsample/arraytest2.php」にアクセスして実行結果を確認してください。
PHPでは多次元配列の利用も可能です。
方法は3種類あります。
- array()の中にarray()を記述する方法
$data1=array(array(0, 1), array(2,3));
- array()の中にarray()を記述し、さらに配列のインデックスを指定する方法
$data2=array('a0'=>array('b0'=>0, 'b1'=>1), 'a1'=>array('b0'=>2, 'b1'=>3));
- []での多次元配列を記述する方法
$data3[0][1]=1; $data3[0][2]=2;
【arraytest3.php】
<p>配列のテスト</p> <?php $data1=array(array(0, 1), array(2,3)); print_r($data1); print("<br>"); // 配列のインデックスを指定します $data2=array('a0'=>array('b0'=>0, 'b1'=>1), 'a1'=>array('b0'=>2, 'b1'=>3)); print_r($data2); print("<br>"); // []での多次元配列 $data3[0][1]=1; $data3[0][2]=2; print_r($data3); ?>
Webブラウザで「http://localhost/phpsample/arraytest3.php」にアクセスして実行結果を確認してください。
<<前 [TOP] 次>>