📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

164行目: 164行目:


== 連想配列 ==
== 連想配列 ==
==== 連想配列の定義 ====
連想配列において、要素を作成したり要素から値を取得するには、キーを指定する必要がある。<br>
連想配列において、要素を作成したり要素から値を取得するには、キーを指定する必要がある。<br>
PHPの連想配列では、キーとして整数 (正の整数、0、負の整数) と文字列を使用することができる。<br>
PHPの連想配列では、キーとして整数 (正の整数、0、負の整数) と文字列を使用することができる。<br>
170行目: 171行目:
整数を指定する場合、キーは連続した整数である必要はない。<br>
整数を指定する場合、キーは連続した整数である必要はない。<br>
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
  // 連想配列の定義
  // 直接代入
  $var[0]  = 14;
  $var[0]  = 14;
  $var[2]  = 'Tokyo';
  $var[2]  = 'Tokyo';
  $var[-4] = 8400;
  $var[-4] = 8400;
// array関数を使用して定義する場合
$array1 = array(
    'name' => 'Yamada',
    'age'  => 25,
    'city' => 'Osaka'
);
// 短縮構文 (PHP 5.4以降)
$array2 = [
    'name' => 'Tanaka',
    'age'  => 30,
    'city' => 'Tokyo'
];
   
   
  // 各要素にアクセスする場合
  // 各要素にアクセスする場合
241行目: 256行目:
  // 出力
  // 出力
  [price_peach] => 120
  [price_peach] => 120
</syntaxhighlight>
<br>
==== 連想配列の要素の存在確認 ====
<syntaxhighlight lang="php">
// 任意の要素の存在確認
if (isset($array1['age'])) {
    echo $array1['age'];
}
// デフォルト値の使用
// Nullコアレス演算子 (PHP 7以降)
// キー"city"が存在しない場合は、"Unknown"となる
$city = $array1['city'] ?? 'Unknown';
</syntaxhighlight>
<br>
==== 連想配列の操作 ====
<syntaxhighlight lang="php">
// 要素の追加
$array1['country'] = 'Korea';
$array1['age']    = '30';
// 要素の削除
unset($array1['age']);
// 要素数の取得
$count = count($array1);
// キーの存在確認
$exists = array_key_exists('name', $array1);
// 値の存在確認
$hasValue = in_array('Tokyo', $array1);
// キーの取得
$keys = array_keys($array1);
// 値の取得
$values = array_values($array1);
</syntaxhighlight>
<br>
==== 連想配列の走査 ====
<syntaxhighlight lang="php">
foreach ($array1 as $key => $value) {
    echo "$key: $value\n";
}
// 値のみの走査
foreach ($array1 as $value) {
    echo "$value\n";
}
</syntaxhighlight>
<br>
==== 連想配列の結合 ====
<syntaxhighlight lang="php">
// array_merge関数の使用
$merged = array_merge($array1, $array2);
// +演算子の使用
// ただし、同じキーが存在する場合は、左側が優先される
$combined = $array1 + $array2;
</syntaxhighlight>
<br>
==== 連想配列の並べ替え ====
<syntaxhighlight lang="php">
// キーでソート
ksort($array1);  // 昇順
krsort($array1);  // 降順
// 値でソート
asort($array1);  // 昇順
arsort($array1);  // 降順
// カスタムソート
uasort($array1, function($a, $b) {
    return $a <=> $b;  // 宇宙船演算子 (PHP 7以降)
});
</syntaxhighlight>
<br>
==== 連想配列の変換 ====
<syntaxhighlight lang="php">
// 連想配列をJSON形式に変換
$json = json_encode($array1);
// JSONを連想配列に戻す
$array = json_decode($json, true);
// 連想配列のフィルタリング
$filtered = array_filter($array1, function($value) {
    return $value > 20;  // 20より大きい値のみ抽出
});
// 連想配列の要素を変換
$mapped = array_map(function($value) {
    return $value * 2;  // 各要素を2倍にする
}, $array1);
</syntaxhighlight>
<br>
==== エラー処理 ====
<syntaxhighlight lang="php">
// 安全なアクセス
$value = isset($array1['key']) ? $array1['key'] : 'default';
// または
$value = $array1['key'] ?? 'default';  // PHP 7以降
// エラー回避
try {
    $value = $array1['nonexistent'];
}
catch (Error $e) {
    // エラー処理
}
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>