2016-12-01 18 views
-2

私は自分のウェブサイトに何かを見つけようとしています。 これは私のコードではなく、私が意味することを理解しやすくするための例です。文字列と配列キーの一致

$services = array(
    Marketing => marketing:342343423423, 
    Sales => sales:779876786, 
) 

と私は私のウェブサイト上のフォームを持っている:

は、私はこのような配列を持っているとしましょう。投稿された値をPOSTリクエストで取得できます。

POSTリクエストは、例えば、この

$_POST['service_request'] 

のように見えることができます

今私が知りたいの横を行う方法である:

$_POST['service_request']$services内部配列キーのいずれかに一致するならば、印刷この配列キーの関連する値

したがって、ユーザが自分のフォームを記入し、彼のサービスリクエストがマーケティングであるとしたら、このサービスリクエストが$service変数の中に存在するかどうかをチェックしたい場合は値を出力します。

+3

[ 'array_key_exists'(http://php.net/array_key_exists) –

答えて

7

使用key_exists phpの機能。

if(key_exists($_POST['service_request'],$services)){ 
    //exists, perform rest of the logic here. 
} 

更新:それはそう両方とも基本的に同じであるarray_key_existsの別名です。

+0

いいえまたはそれを変更エイリアス@Jay – Clive

+0

私の悪い@clive。私の最初のコーヒーでまだ終わっていません;-) –

+0

あなたの答えはありがとう。 通常、配列の値を出力したいときは、print_r($ test ['key'])のようにします。[]内の部分はPOST要求ですか?例えばprint_r($ test [$ _ POST ['myfield']])? –

2

: キーが設定されていないと、以下のコードで例外が発生する可能性があります。あなたは、他の答えで与えられたkey_existsを使うべきです。

if (isset($services[$_POST['service_request']])) { 
    echo $services[$_POST['service_request']]; 
} 

このコードは、指定されたキーで配列から値を出力します:

$value = $services[$_POST['service_request']]; 
echo (isset($value) ? $value : ''); 
+2

OPが"これを試してください " "? ***良い答え***は、何が行われたのか、それがOPのためだけでなく、将来の訪問者のためにそうした方法で行われた理由について、常に説明します。 –

+1

値が存在しない場合、未定義オフセットの実行を指示することができます –

+0

それを忘れました。 –