'in_array' による値の検索
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 17/68。
配列内に特定の値が存在するかどうかを確認する必要がある場合、PHPの in_array() 関数が最適なソリューションを提供します。この関数は配列内を検索し、値が見つかった場合は true、見つからない場合は false というブール値を返します。
基本的な構文は次のようになります:
<?php
$existingUsers = ["alice", "bob", "charlie"];
$newUsername = "bob";
if (in_array($newUsername, $existingUsers)) {
echo "Username already taken!";
} else {
echo "Username available!";
}
// 出力: Username already taken!
?>in_array() 関数は、検索する値と検索対象の配列という2つの主要なパラメータを受け取ります。これは boolean を返すため、if や while ループのような条件文と完璧に連携します。
この関数は、ユーザーの入力が許可された複数の選択肢のいずれかに一致するかどうかの確認、ショッピングカートにアイテムが既に存在するかどうかの検証、またはリストに重複したエントリが追加されないようにすることなど、バリデーション(検証)タスクに特に役立ちます。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単2つの入力を受け取ります。JSON形式の利用可能な色の配列と、検索する色の名前です。両方の入力を読み込み、JSON文字列を配列に変換し、in_array() を使用してその色が配列内に存在するかどうかを確認してください。見つかった場合は "Color available" を、見つからない場合は "Color not available" を出力してください。
入力形式: 2行 - 1行目にはJSON配列(例: ["red","blue","green","yellow"])、2行目には検索する色の名前が含まれます。
期待される出力: 色が配列内に存在するかどうかに基づいて、"Color available" または "Color not available" のいずれかを出力します。
チートシート
in_array() 関数は、配列内から値を検索し、見つかった場合は true を、そうでない場合は false を返します。
構文:
in_array($value, $array)例:
<?php
$existingUsers = ["alice", "bob", "charlie"];
$newUsername = "bob";
if (in_array($newUsername, $existingUsers)) {
echo "Username already taken!";
} else {
echo "Username available!";
}
// 出力: Username already taken!
?>この関数は条件文と非常に相性が良く、ユーザー権限の確認、重複の防止、または許可されたオプションの検証などのバリデーションタスクによく使用されます。
自分で試してみよう
<?php
// 色のJSON配列を読み込む
$jsonInput = fgets(STDIN);
$colors = (array)json_decode($jsonInput, true);
// 検索する色を読み込む
$searchColor = trim(fgets(STDIN));
// TODO: 配列内にその色が存在するかどうかを確認するコードを以下に記述してください
// 結果を出力する
echo $result;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。