読み込み中...

PHP初心者向け!配列にキーが存在するかを確認する5つの手法

PHP初心者向け配列キー存在確認手法解説 PHP
この記事は約8分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、PHPで配列に特定のキーが存在するかどうかを確認する5つの手法を理解し、実際のコードに活用することができるようになります。

●PHP配列のキーとは

PHPでは、配列はキーと値のペアを保持することができます。

キーは配列内の各要素を一意に識別するために使用され、値はそのキーに関連付けられたデータを表します。

●配列にキーが存在するかを確認する方法

配列に特定のキーが存在するかどうかを確認するには、いくつかの手法があります。

それぞれの手法について、サンプルコードとともに解説します。

○サンプルコード1:array_key_exists関数を使う

array_key_exists関数は、指定したキーが配列に存在するかを確認するための関数です。

この関数は、キーが存在すればtrueを、存在しなければfalseを返します。

$array = ["apple" => "りんご", "banana" => "バナナ", "cherry" => "さくらんぼ"];
$key = "banana";

if(array_key_exists($key, $array)) {
    echo "キー{$key}は存在します。";
} else {
    echo "キー{$key}は存在しません。";
}

このコードでは、”banana”というキーが$array配列に存在するかを確認しています。

存在すれば「キーbananaは存在します。」と表示し、存在しなければ「キーbananaは存在しません。」と表示します。

○サンプルコード2:isset関数を使う

isset関数もまた、キーが存在するかを確認するための関数です。

しかし、こちらは指定したキーが存在し、かつnullでないことを確認します。

$array = ["apple" => "りんご", "banana" => "バナナ", "cherry" => "さくらんぼ"];
$key = "banana";

if(isset($array[$key])) {
    echo "キー{$key}は存在します。";
} else {
    echo "キー{$key}は存在しません。";
}

このコードでは、”banana”というキーが$array配列に存在し、その値がnullでないことを確認しています。

条件を満たす場合、「キーbananaは存在します。」と表示し、満たさない場合は「キーbananaは存在しません。」と表示します。

○サンプルコード3:in_array関数を使う

in_array関数は配列の値に対して使われる関数ですが、配列のキーを値とする新たな配列を作成し、その配列に対して使用することで、間接的にキーの存在確認が可能です。

$array = ["apple" => "りんご", "banana" => "バナナ", "cherry" => "さくらんぼ"];
$key = "banana";

if(in_array($key, array_keys($array))) {
    echo "キー{$key}は存在します。";
} else {
    echo "キー{$key}は存在しません。";
}

このコードでは、array_keys関数を使って配列$arrayの全てのキーからなる新たな配列を作り、その配列に$keyが存在するかをin_array関数で確認しています。

○サンプルコード4:array_search関数を使う

array_search関数は、配列の中から指定した値と一致する最初のキーを探します。

値が存在しなければfalseを返します。

$array = ["apple" => "りんご", "banana" => "バナナ", "cherry" => "さくらんぼ"];
$value = "バナナ";

$key = array_search($value, $array);

if($key !== false) {
    echo "値{$value}のキーは{$key}です。";
} else {
    echo "値{$value}は存在しません。";
}

このコードでは、”バナナ”という値が$array配列に存在するかを確認しています。

存在すればそのキーを表示し、存在しなければ「値バナナは存在しません。」と表示します。

○サンプルコード5:foreachループを使う

foreachループは、配列の各要素に対して順番に処理を適用するためのループ構文です。

$array = ["apple" => "りんご", "banana" => "バナナ", "cherry" => "さくらんぼ"];

foreach($array as $key => $value) {
    echo "キー: {$key}, 値: {$value} <br>";
}

このコードでは、$arrayの各要素に対して、キーと値を表示する処理を行っています。

結果として、「キー: apple, 値: りんご」、「キー: banana, 値: バナナ」、「キー: cherry, 値: さくらんぼ」と表示されます。

●各手法の違いと注意点

これまでに見てきた関数や構文は、それぞれ異なる目的や使い道に適しています。

たとえば、array_key_existsとissetはキーの存在を確認するために使用されますが、issetは値がnullでないことも同時に確認します。

そのため、値がnullの可能性がある場合はarray_key_existsを、nullであってはならない場合はissetを使用します。

in_arrayとarray_searchは配列の値の存在を確認するために使用されますが、array_searchは一致する値の最初のキーも返します。

一方、foreachループは配列の各要素に対して一連の操作を行うために使用されます。

これらの手法を適切に使い分けることで、効率的で読みやすいコードを書くことができます。

●応用例

これまでに紹介したPHPの配列操作関数を組み合わせることで、より実践的な状況に対応することが可能になります。

○サンプルコード6:データベースの結果を配列に格納する

データベースから取得した結果を配列に格納し、その結果を操作することはよくあります。

下記のサンプルコードは、データベースからデータを取得し、それを配列に格納する一例です。

// データベースから取得した結果を模した配列
$resultFromDatabase = [
    ["id" => 1, "name" => "山田", "age" => 20],
    ["id" => 2, "name" => "鈴木", "age" => 25],
    ["id" => 3, "name" => "佐藤", "age" => 30],
];

// 結果を格納する配列を準備
$data = [];

// データベースの結果を配列に格納
foreach($resultFromDatabase as $row) {
    $data[$row["id"]] = $row;
}

// 結果を表示
print_r($data);

このコードでは、データベースから取得したと想定される結果を配列に格納し、その結果を$data配列に格納します。

これにより、IDをキーとした配列が作成されます。

○サンプルコード7:フォームから送信されたデータを配列に格納する

ユーザーからの入力をフォームから受け取り、そのデータを配列に格納する場合もよくあります。

下記のサンプルコードは、POSTメソッドで送信されたフォームのデータを配列に格納する一例です。

// フォームからPOSTメソッドで送信されたデータを模した配列
$postData = [
    "name" => "田中",
    "age" => "35",
    "email" => "tanaka@example.com",
];

// フォームのデータを格納する配列を準備
$formData = [];

// POSTデータを配列に格納
foreach($postData as $key => $value) {
    $formData[$key] = $value;
}

// 結果を表示
print_r($formData);

このコードでは、フォームから送信されたデータを配列に格納しています。

具体的には、フォームから送信されたと想定されるデータを$postData配列に格納し、その後その内容を$formData配列に格納しています。

これらの手法を使うことで、各種のデータを簡単に配列に格納し、その後の処理に活用することが可能となります。

まとめ

この記事では、PHPで配列を扱うための基本的な関数とその使い方を紹介しました。

具体的には、array_key_exists関数、isset関数、in_array関数、array_search関数、そしてforeachループの使い方について解説しました。

これらの関数や構文は、日々の開発業務において頻繁に用いられます。

それぞれの特性を理解し、適切な場面で使い分けることで、コードの可読性や効率性を向上させることが可能です。

また、データベースからのデータの取り扱いや、フォームから送信されたデータを配列に格納する例など、実践的なシチュエーションでの応用例も示しました。

これらの手法を駆使することで、さまざまな状況に対応する柔軟なコードを書くことができます。

これらの関数と構文をマスターすることで、PHPでの配列操作がより手際よく、かつ効率的に行えるようになることでしょう。

これからもPHPの学習を続けていきましょう。