連想配列

連想配列

  • 基本的な配列の場合、配列要素の0番目、1番目・・・と添え字に数値を指定して、各要素の値を代入したり取得していましたが、連想配列を使用すると、添え字の代わりに文字列のキーを使用できます
  • インデックスに名前をつける
  • 中身を連想できるようなインデックスをもつ配列

配列変数名 = array( キー=>値1, キー=>値2, キー=>値3・・・);

連想配列を作成
  • 内容が連想できるインデックスをつけておきます
  • インデックスと値は「=>」でつなぎます
<?php
  // 連想配列変数$presentの宣言と初期化
  $present = array ( '長崎'=>'チャンポン', '名古屋'=>'手羽先', '沖縄'=>'泡盛' );

  // キーを指定して、値を取得します
  echo $present['長崎'];
  echo '<br>';
  
  // キーを指定して、値を取得します
  echo $present['名古屋'];
  echo '<br>';
  
  // キーを指定して、値を取得します
  echo $present['沖縄'];
  echo '<br>';
  • 曜日別の売上個数で計算
<?php
$sales = array('sun'=>10, 'mon'=>20, 'tue'=>30, 'wed'=>40, 'thu'=>50, 'fri'=>60,'sat'=>70);
echo '土日の合計は' . ( $sales['sat'] + $sales['sun'] ) . 'です';
値からキーを取得
  • 連想配列の値からキーを取得することもできます

取得したキー = array_search( 検索する値, 検索対象の連想配列変数名 );

<?php
  // 連想配列変数$priceの宣言と初期化
  $price = array ( '4'=>'500円', '1'=>'1000円', '2'=>'20円', '3'=>'50円');
  
  $code = array_search( '20円', $price );

  echo '20円のキーは' . $code . 'です。';

配列操作関数

  • PHPは、さまざまな配列操作関数が用意されています
  • 関数とは、機能単位の処理のひとかたまりで、期待する値を返してくれます
  • 返却される値のことを戻り値と言い、戻り値は用意した変数に代入することができます
配列の要素数を取得(配列の要素数を知る)
  • 配列の要素数を調べるときには、count関数を使います

conut( $配列変数名 )

<?php 
  $city[0] = '東京';
  $city[1] = '名古屋';
  $city[2] = '京都';
  $city[3] = '大阪';
  $city[4] = '福岡';
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>配列の要素数を知る</title>
</head>
<body>
<table border="1" width="100">
<tr><th>都市名</th></tr>
<?php
  for ( $i = 0; $i < count( $city ); $i++ ) {
    echo '<tr><td>' . $city[$i] . '</td></tr>' . "\n";
  }
?>
</table>
</body>
</html>

配列の値の取得

  • 配列の各要素の値を取得するには、代入と同様に添え字を使って、各要素にアクセスします
$配列名[キー]で取り出す
<?php
  // 配列変数$nameの宣言と初期化
  $city = array( '東京', '千葉', '神奈川' );
  
  // "東京"を出力します
  echo $city[0] . '<br>';
  
  // "千葉"を出力します
  echo $city[1] . '<br>';

  // "神奈川"を出力します
  echo $city[2] . '<br>';

for文を使う

<?php
$color = array ( 'red', 'olive', 'yellow', 'green', 'blue', 'purple' );

for ( $i = 0; $i <= 5; $i++ ){
    echo $color[$i] . '<br>';
}

count関数を使う

  • 配列の要素数調べて利用する
<?php
$color = array ( 'red', 'olive', 'yellow', 'green', 'blue', 'purple' );
$c = count ( $color );

for ( $i = 0; $i <= $c-1; $i++ ){
    echo $color[$i] . '<br>';
}

list関数を使う

  • 配列の要素と同じ順番で、指定した変数に値を代入します

list( 変数1, 変数2, 変数3・・・ ) = 配列変数名

<?php
$a = array( 'きつね', 'ねこ', 'こあら' );

  list( $x, $y, $z ) = $a;
  echo $x . '' . $y . '' . $z;
<?php
  // 配列変数$food_dataの宣言と初期化
  $food_data = array ( 'たこ焼き', '8個', '350円' );
  
  // 配列要素を各変数に代入
  list ( $food, $count, $price ) = $food_data;
  
  echo $food . '<br>';
  echo $count . '<br>';
  echo $price . '<br>';

print_r関数を使う

  • 「print_r」は、変数に関する情報を表示する関数です
  • 「print_r」の引数に配列を指定すると、すべての要素の「キー」と「値」をわかりやすい形式で表示します
  • 配列の値を表示したいだけなら「print_r」を使うことが最も簡単です
<?php
$color = array( 'red', 'olive', 'yellow', 'green', 'blue', 'purple' );

  echo '<pre>';
  print_r( $color );
  echo '</pre>';