'in_array' による値の検索
CoddyのPHPジャーニー「論理とフロー」セクションの一部。レッスン 17/68。
配列内に特定の値が存在するかどうかを確認する必要がある場合、PHP の in_array() 関数が最適な解決策を提供します。この関数は 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つのパラメータを受け取ります。検索する値と、検索対象の配列です。ブール値を返すため、if や while ループなどの条件文と組み合わせて使うのに最適です。
この関数は、ユーザーの入力が許可された複数の選択肢のいずれかと一致するかを確認したり、商品がショッピングカートにalready存在するかを検証したり、重複した項目がリストに追加されないようにしたりするなど、検証タスクに特に役立ちます。
チャレンジ
簡単2つの入力を受け取ります。JSON形式のavailable colorsのarrayと、検索するcolor名です。両方の入力を読み取り、JSON文字列をarrayに変換し、in_array()を使用してcolorがarrayにexistsするかを確認します。foundの場合は"Color available"を、foundでない場合は"Color not available"を出力します。
入力形式: 2行です。1行目にはJSON array(例: ["red","blue","green","yellow"])が含まれ、2行目には検索するcolor名が含まれます。
期待される出力: colorがarrayにexistsするかどうかに基づき、"Color available"または"Color not available"のいずれかを出力します。
自分で試してみよう
<?php
// 色のJSON配列を読み取る
$jsonInput = fgets(STDIN);
$colors = (array)json_decode($jsonInput, true);
// 検索する色を読み取る
$searchColor = trim(fgets(STDIN));
// TODO: 色が配列に存在するかを確認するコードを以下に書いてください
// 結果を出力する
echo $result;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ