PHPを使っていると配列内に特定の値が存在するかどうかを確認したい場面がよくあります。そんな時に役立つのが、PHPの組み込み関数「in_array()」です。この記事では、非常に役立つこの関数の基本的な使い方や、実際の活用例をわかりやすく解説します。PHP初心者の方でも理解できる内容にしていますので、ぜひ最後までお読みください。
in_array()とは?
in_array()は、指定した値が配列に含まれているかどうかを判定するための関数です。この関数を使用することで、特定の値が配列内に存在するかどうかを簡単にチェックできます。
使い方の基本文法
in_array($value, $array, $strict);
$value:検索する値
これは、配列内で探したい特定の値を指します。たとえば、文字列、整数、または浮動小数点数など、さまざまなデータ型を指定できます。in_array()は、指定した値が配列に存在するかどうかを調べます。
$array:検索対象の配列
ここには、値が含まれているかどうかを確認したい配列を指定します。配列の中には、複数の要素が含まれており、in_array()はその配列を検索して、$valueが存在するかどうかを調べます。
$strict (省略可): 型を厳密に比較するかどうか(trueまたはfalse)
オプションは、比較を厳密に行うかどうかを指定します。デフォルトではfalseで、これは型の違いを無視して比較します。
falseの場合
たとえば、数値の3と文字列の‘3’は同じと見なされます。したがって、in_array(3, [‘3’])はtrueを返します。
trueの場合
型を厳密に比較するため、数値と文字列は異なるものとして扱われます。したがって、in_array(3, [‘3’], true)はfalseを返します。
// 型を無視した場合
$numbers = [1, 2, '3']; // 配列内に整数と文字列が含まれている
if (in_array(3, $numbers)) {
echo "3は配列に含まれています。"; // 出力: 3は配列に含まれています。
}
// 型を厳密に比較した場合
if (in_array(3, $numbers, true)) {
echo "3は配列に含まれています。";
} else {
echo "3は配列に含まれていません。"; // 出力: 3は配列に含まれていません。
}
基本的な使用例
配列内に値が存在するか確認する
次のコードは、配列内に特定の値が含まれているかどうかを確認する基本的な例です。
$meibutsu = ['zunda', 'sasakama', 'gyutan'];
if (in_array('sasakama', $fruits)) {
echo "笹かまは配列に含まれています。";
} else {
echo "笹かまは配列に含まれていません。";
}
この例では、‘sasakama’が$meibutsu配列に含まれているため、「笹かまは配列に含まれています。」と表示されます。
厳密比較を行う
先程の例でも触れましたが、データ型を厳密に比較した例です。
$numbers = [1, 2, '3'];
if (in_array(3, $numbers, true)) {
echo "3は配列に含まれています。";
} else {
echo "3は配列に含まれていません。";
}
この場合、3(整数)と‘3’(文字列)は異なる型のため、結果は「3は配列に含まれていません。」となります。
in_array()の活用例
フォームデータの検証
ユーザーが送信したデータが、あらかじめ定義された選択肢の中にあるかを確認する際に役立ちます。
$allowed_address = ['sendai', 'tagajo', 'shiogama'];
$user_caddress = 'ishinomaki';
if (in_array($user_address, $allowed_address)) {
echo "石巻は許可されています。";
} else {
echo "石巻は許可されていません。";
}
この場合、‘ishinomaki’は$allowed_address配列に含まれないため、「石巻は許可されていません。」と表示されます。
条件に基づく処理の実行証
特定の条件に基づいて処理を行う場合にも、in_array()が便利です。
$user_role = 'editor';
$allowed_roles = ['admin', 'editor', 'author'];
if (in_array($user_role, $allowed_roles)) {
echo "アクセスが許可されています。";
} else {
echo "アクセスが拒否されました。";
}
‘editor’は$allowed_roles配列に含まれているため、「クセスが許可されています。」と表示されます。
まとめ
in_array()は、PHPで配列内に特定の値が含まれているかどうかを簡単にチェックできる便利な関数です。基本的な使い方や活用例を紹介しましたが、ぜひ実際のプロジェクトで試してみてください。PHP初心者の方でも、この関数を使いこなすことで、より効率的にコーディングできるようになるでしょう。