解 説

名前をキーにして住所を値にした連想配列の場合、キーと検索値で簡易な検索システムができます。
処理の流れは次のようになります。

  1. 検索値はユーザーにフォームのテキストボックスで入力してもらいます。
  2. 入力したデータは属性のactionで指定したphpファイルにpostという方法で送られます。
  3. フォームから送信されたデータは$_POST[]で受け取ります。
  4. $_POST[]で受け取ったデータとforeachで展開したキーの値が完全一致したならその一致したデータを表示する構文をif文で記述します。

文字列の比較

完全一致

2つの文字列が同一であるかどうか調べる演算子は「==」か「===」です。
この演算子の違いはオペランドに文字列以外の例えば数字が指定されていた場合に挙動が変わります。
「==」演算子は文字列以外のオペランドが比較されると自動的に文字列にキャストします。
「===」は文字列以外のオペランドをキャストしませんので型が違えばfalseを返します。
3 == ‘3’ trueです。
3 === ‘3’ falseです。

検索フォーム

php側のコード

文字列の検索関数

文字列から特定の文字列や文字を探す関数があります。
strpos()
この関数の第1引数は検索する文字が入ります。そして第2引数に部分一致する文字を指定します。
第2引数と一致がないとfalseを返します。一致した場合は開始位置を返します。ただし先頭の文字は0を返します。
strpos( 文字列, 検索文字 [, 開始位置])

if文の判定で($pos == FALSE) とする場合は注意が必要です。先頭の文字は0を返しますので、0はFALSEと判定されてしまいます。この場合は($pos === FALSE) としなければなりません。ちなみに$pos !== FALSEは$pos が FALSE と等しくないか、同じ型でない場合に TRUEとなるためこのif文は正しく判定します 。