in_array

関数の概要

PHPの in_array 関数は、指定した値が配列の中に存在するかどうかを調べるための関数です。実務で配列の中に目的のデータが含まれているかを簡単に確認したいときによく使われます。検索結果は真偽値(true または false)で返されるため、条件分岐にも利用できます。

パラメータの説明

  • needle(必須): 配列内に存在するか調べたい値を指定します。
  • haystack(必須): 検索対象の配列を指定します。
  • strict(省略可能): デフォルトは false ですが、true を指定すると型も厳密にチェックします。例えば、文字列の “1” と整数の 1 は異なるものとして判定されます。

戻り値

指定した値が配列の中に存在する場合は true、存在しない場合は false を返します。

使用例

基本的な使い方

<?php
$fruits = ['りんご', 'みかん', 'バナナ'];

if (in_array('みかん', $fruits)) {
    echo "みかんは配列にあります。";
} else {
    echo "みかんは配列にありません。";
}
?>

この例では、配列 $fruits の中に “みかん” があるかどうかを確認し、あればメッセージを表示しています。

strict パラメータの利用例

<?php
$values = [1, 2, '3'];

var_dump(in_array(3, $values));          // 出力: bool(true)
var_dump(in_array(3, $values, true));    // 出力: bool(false)
?>

strict を指定しない場合は型変換されてしまうため、整数の 3 と文字列の ‘3’ は等しいと判定されます。一方、strict を true にすると型も比較されるため、文字列の ‘3’ は整数の 3 と異なると判定されます。

連想配列での使い方

<?php
$user = [
    'name' => '田中',
    'age' => 30,
    'hobby' => 'サッカー'
];

if (in_array('サッカー', $user)) {
    echo "趣味にサッカーがあります。";
} else {
    echo "趣味にサッカーはありません。";
}
?>

連想配列でも値を検索できます。ここでは値 “サッカー” が配列 $user の中にあるかどうかをチェックしています。

関連する関数

  • array_search: 指定した値のキーを取得する
  • array_key_exists: 配列に指定したキーが存在するか確認する
  • isset: 配列の特定のキーと値がセットされているか確認する(キーの存在と値がnullでないことを判定)

まとめ

in_array はPHPで配列内に特定の値が存在するかを簡単に調べるのに便利な関数です。使い方がシンプルで、条件分岐にもよく使われるため実務で頻繁に活躍します。特に strict パラメータを使うことで型の違いも意識した正確な判定が可能ですので、用途に応じて適切に使い分けましょう。