📢 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> | ||