PHP 連想配列

連想配列とは「検索キーとデータ本文を対にして記憶した配列」で、検索キーでデータ本文を参照することができます。

プログラムの作成-1

rensou1.php のソースコードを Shift-JIS でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
$arr = array( 'red'=>'赤', 'blue'=>'青', 'green'=>'緑' );
print_r($arr);

print 'green = '. $arr[green]. "\r\n"; 

$key= array_search ('青', $arr);
echo '青のキー = '.$key."\r\n";

$arr[bleck]= '黒';
$arr[yellow]= '黄';

unset( $arr[blue] );
print_r($arr);
?>

【実行画面】
コマンドプロンプトを起動して rensou1.php をコンパイルします。
C:\Windows\System32>cd c:\DATA\PHP
C:\DATA\PHP>php Rensou1.php
Array
(
    [red] => 赤
    [blue] => 青
    [green] => 緑
)
green = 緑
青のキー = blue
Array
(
    [red] => 赤
    [green] => 緑
    [bleck] => 黒
    [yellow] => 黄
)

C:\DATA\PHP>

プログラムの説明

  1. 連想配列にキーと値を初期値として格納します。
    print_r($arr) で連想配列全体を印字します。
    配列や連想配列の確認は print_r() 関数がお勧めです。
    $arr = array( 'red'=>'赤', 'blue'=>'青', 'green'=>'緑' );
    print_r($arr);
    
  2. 連想配列 $arr から green をキーとして色を印字します。
    print 'green = '. $arr[green]. "\r\n"; 
    
    試しに yellow をキーとして色を印字してみます。
    yellow は見つからないので false(空の文字列)になります。
    print 'yellow = '. $arr[yellow]. "\r\n";
    if ($arr[yellow]==false)  print "yellow は見つかりません\r\n";   
    
  3. 今度は逆に、連想配列 $arr から'青'を値として持つキーを検索します。
    $key= array_search ('青', $arr);
    echo '青のキー = '.$key."\r\n";
    
  4. 連想配列の追加と削除です。
    bleck をキーにして'黒'を追加します。
    yellow をキーにして'黄'を追加します。
    $arr から blue を削除します。
    print_r($arr) で連想配列全体を印字します。
    $arr[bleck]= '黒';
    $arr[yellow]= '黄';
    
    unset( $arr[blue] );
    print_r($arr);
    

プログラムの作成-2

次のソースコードを Shift-JIS でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
$arr = array( 'red'=>'赤', 5=>'青', 2=>123, 7=>3.14 );

print 'red = '. $arr[red]. "\r\n"; 
print '5 = '. $arr[5]. "\r\n";
$arr[bleck]= '黒';

var_dump($arr);
?>

【実行画面】
コマンドプロンプトを起動してコンパイルします。

C:\DATA\PHP>php rensou2.php
red = 赤
5 = 青
array(5) {
  ["red"]=>
  string(2) "赤"
  [5]=>
  string(2) "青"
  [2]=>
  int(123)
  [7]=>
  float(3.14)
  ["bleck"]=>
  string(2) "黒"
}

C:\DATA\PHP>

プログラムの説明

  1. C言語などでは int 型の配列には int しか格納できませんし、char 型の配列には char しか格納できません。
    所が PHP では int, float, char の区別が無いので、連想配列(配列)に混在して格納することが出来ます。
    連想配列 $arr に、文字列, int, float を混在して格納してみました。
    $arr = array( 'red'=>'赤', 5=>'青', 2=>123, 7=>3.14 );
    
  2. red と 5 をキーとして、連想配列を参照します。
    print 'red = '. $arr[red]. "\r\n"; 
    print '5 = '. $arr[5]. "\r\n";
    
  3. $arr に bleck をキーとして '黒' を追加登録します。
    $arr[bleck]= '黒';
    
  4. var_dump($arr); で連想配列を確認します。
    var_dump() を使うと、格納されているデータの属性とその値が表示されます。
    配列だけでなく、スカラ変数(普通の変数)にも使えるので試してみて下さい。
    var_dump($arr);
    

前田稔の超初心者のプログラム入門
PHP Program