#16 PHPで学ぶ辞書型(マップ)の基本

PHPで名前と値の組み合わせを扱う仕組みは、以前の記事で触れた「連想配列」です。この記事では、PHPにおける辞書に相当する使い方を、改めて詳しく解説します。

連想配列を作ってみる

$scores = ["太郎" => 90, "次郎" => 85];

キーには文字列だけでなく整数も使えますが、キーが数値の場合は通常のリスト(添字配列)との違いが分かりにくくなるため、辞書として使う場合は文字列のキーを使うのが基本です。

値を取り出す・追加する

echo $scores["太郎"]; $scores["三郎"] = 78;

既に存在するキーに代入すると値が上書きされ、存在しないキーに代入すると新しい要素として追加されます。

キーが存在するか確認する

if (array_key_exists("三郎", $scores)) { echo $scores["三郎"]; }

似た関数に`isset()`がありますが、値が`null`の場合の挙動が異なります。`isset()`は値が`null`だとキーがあっても`false`を返しますが、`array_key_exists()`はキーの有無だけを厳密に判定します。この違いを知らずに`isset()`を使うと、値がnullの要素を「存在しない」と誤判定してしまうことがあるため注意しましょう。

キーを削除する

unset($scores["三郎"]);

全てのキーと値を順に処理する

foreach ($scores as $name => $score) { echo "{$name}: {$score}"; }

キーだけ、または値だけが欲しい場合は`array_keys()`・`array_values()`を使うと、それぞれの一覧を配列として取得できます。

PHPならではの注意点

PHPの配列は、以前の記事で触れた通り、単純なリストと連想配列を同じ`array`という型で扱います。今使っている配列がどちらの用途なのかを意識しながらコードを読み書きすることが、PHPのコードを理解する上で重要です。また、`array_key_exists()`と`isset()`の違いのように、一見似た機能を持つ関数がいくつも存在するのもPHPの特徴です。関数のリファレンスを確認する習慣をつけておくと、思わぬ挙動の違いに悩まされにくくなります。

連想配列を結合する

2つの連想配列をまとめたい場合は`array_merge`を使います。同じキーが両方に存在する場合は、後から渡した配列の値で上書きされます。

$defaults = ["色" => "赤", "サイズ" => "M"]; $options = ["サイズ" => "L"]; $merged = array_merge($defaults, $options);

まとめ

PHPの辞書は連想配列として扱い、`array_key_exists`で安全にキーを確認できます。`unset`での削除、`array_keys`/`array_values`での一覧取得、`array_merge`での結合、単純な配列との使い分けを意識しましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

PHPをもっと学びたい方には「10日でおぼえるPHP入門教室 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本