in_array()
関数
in_array()
関数は、
配列に特定の値が含まれているかどうかを確認します。
確認したい値が配列の要素として存在する場合は、true
を返し、存在しない場合は false
を返します。
in_array()
関数は、入力として受け取った値が特定の配列に含まれているかどうかを確認し、バリデーション(有効性の検証)に便利に使用されます。
$fruits = ['リンゴ', 'オレンジ', 'バナナ', 'ブドウ'];
if (in_array('バナナ', $fruits)) {
echo '配列の中にバナナが見つかりました!';
} else {
echo '配列の中にバナナが見つかりませんでした。';
}
// 出力: '配列の中にバナナが見つかりました!'
上記の例では、in_array()
関数が $fruits
配列の中から "バナナ" を探し、true
を返します。そのため、「配列の中にバナナが見つかりました!」というメッセージが出力されます。
配列に特定のキー(またはインデックス)が存在するかどうかを確認したい場合は、array_key_exists()
関数を代わりに使用する必要があります。
in_array()
関数の書式は以下のとおりです。
構文
in_array(mixed $needle, array $haystack[, bool $strict = false]): bool
パラメーター
$needle |
必須。配列の中から探したい(確認したい)値を指定します。 |
---|---|
$haystack |
必須。検索を行う配列を指定します。 |
$strict |
オプション。true に設定すると、検索時に厳密な型比較が行われます。つまり、$needle の型は配列内の値の型と正確に一致する必要があります。false に設定すると(デフォルト)、値のみを比較します。もし $strict 変数を
|
戻り値
確認したい値が配列の中に存在する場合は true
を返し、存在しない場合は false
を返します。
便利な例
in_array()
関数は PHP で非常に便利で、さまざまな状況で活用できます。いくつかの有用な例を紹介します。
繰り返し文を活用して配列の複数の値を確認する方法
in_array()
関数は配列から単一の値を探すために使われるため、
複数の値を同時に探す場合は、foreach()
繰り返し文と in_array()
関数を組み合わせて使うと便利です。
$fruits=['リンゴ','オレンジ','バナナ','ぶどう'];
$search_values=['バナナ','ぶどう','スイカ'];//探す複数の値を配列に保存
foreach($search_values as$value){
if(in_array($value,$fruits)){
echo"配列から'{$value}'の値を見つけました!".'<br>';
}else{
echo"配列から'{$value}'の値を見つけられませんでした。".'<br>';
}
}
コード補足説明foreach()
繰り返し文は配列やオブジェクトを巡回して繰り返し処理を行う際に使われる代表的な構文です。
配列から'ぶどう'の値を見つけました!
配列から'スイカ'の値を見つけられませんでした。
上記の出力のように、「バナナ」と「ぶどう」の値は$fruits
配列で見つかりましたが、「スイカ」の値は見つかりませんでした。
値の存在確認
配列内に特定の値を探す場合、in_array()
関数を使って値の存在有無を確認できます。
以下の例は、ウェブサイトでユーザーが選択した言語がサポートされているかを確認し、言語設定を適用する例です。
$supported_languages=['en','es','fr','de'];
$user_language='fr';
if(in_array($user_language,$supported_languages)){
echo"選択した言語'{$user_language}'はサポートされています!";
}else{
echo"選択した言語'{$user_language}'はサポートされていません。デフォルト言語を使用します。";
}
値の重複削除
配列から重複した値を削除するには、in_array()
関数とforeach()
繰り返し文を使って重複した値を検出し、削除することができます。
例えば、ユーザーが重複を許さないリストを作成する場合や、データベースの結果から重複を除去してデータを整える際によく使われます。
$numbers = [1, 2, 2, 3, 4, 4, 5];
$unique_numbers = [];
foreach ($numbers as $number) {
if (!in_array($number, $unique_numbers)) {
$unique_numbers[] = $number;
}
}
print_r($unique_numbers);
上記の例では、$numbers
配列の重複した値を削除し、$unique_numbers
配列に固有の値だけを残しました。foreach()
繰り返し文とin_array()
関数を使って重複した値を検出し、固有の値だけを$unique_numbers
配列に追加しています。
これで$unique_numbers
配列は重複のない固有の値を持つようになりました。この機能は日常的なプログラミングでよく使われ、データの整形や重複処理に役立ちます。
許容可能な値の確認
in_array()
関数は入力された値が特定の配列に含まれているかを確認し、バリデーション(有効性検査)に使用できます。
$valid_colors=['red','green','blue','yellow'];
$user_color='orange';
if(in_array($user_color,$valid_colors)){
echo'使用可能な色です!';
}else{
echo'使用できない色です。';
}
値に対する処理
in_array()
関数は配列に特定の値が存在するかどうかに応じて、異なる処理を実行する場合にも便利です。
$fruits=['リンゴ','オレンジ','バナナ','ぶどう'];
if(in_array('オレンジ',$fruits)){
echo'オレンジを見つけました!オレンジジュースを作りましょう!';
}else{
echo'オレンジを見つけられませんでした。オレンジを買いに行きましょう。';
}
in_array()
関数はこのような状況で便利に使え、特に配列から特定の値を探す必要がある場合に迅速で簡単な解決策を提供します。