2017-02-10 16 views
1

文字列がいくつかあり、互いに似ていない変数が必要です。例えば文字列を比較して、一致しない特定の文字列のみを取得する

$username 
$email 
$firstname 
$lastname 
$gender 

$_POST['username']; 
$_POST['email']; 
$_POST['firstname']; 
$_POST['lastname']; 
$_POST['gender']; 

iは$_POST['username']$username$_POST['email']$emailなどを比較したい...

これは私がそれを比較する方法である:

$username !== $_POST['username']など...

どうすれば変数を取得できますか($_POST変数)は互いに等しくないのですか?

+0

(!$ユーザ名= $ _ POST [ 'ユーザー名'])の場合は、これを使用.... – Sona

+1

構文を確認してください。 @SoniyaReddy –

+0

@SougataBoseは、ユーザー名を比較するだけで、$ _POST ['username']と等しくない必要があります。 – Sona

答えて

1

非常に多くの値があります。あなたに届いているフィールドがわかっている場合は、配列を使用します。

$vars = ['username' => 'value', 'email' => 'value', 
     'firstname' => 'value', 'lastname' =>'value', 'gender' => 'value']; 
foreach($vars as $key => $value){ 
    if($_POST[$key] !== $value){ 
    //does not match 
    }else{ 
    // does match 
    } 
} 
1

POSTパラメータが配列としてで来ているので、最も簡単な方法は、配列にも、あなたの変数を入れてarray_diffを使用しての差を計算するために、次のようになります。

何かを出力します
$variables = [ 
    'username' => $username, 
    'email' => $email, 
    'firstname' => $firstname, 
    'lastname' => $lastname, 
    'gender' => $gender 
]; 

$non_matching = array_diff($variables, $_POST); 

echo "Non matching variables: " . join(', ', array_keys($non_matching)); 

以下のように:

Non matching variables: username, firstname 
1

あなたは何をする各配列のキーと$$keyforeachを使用することができます。

$username = 'username'; 
$email = 'email~'; 
$gender = 'not gender'; 

$_POST['username'] = 'username'; 
$_POST['email']  = 'email'; 
$_POST['firstname'] = 'firstname'; 
$_POST['lastname'] = 'lastname'; 
$_POST['gender'] = 'gender'; 

foreach ($_POST as $key => $value) { 
    if (!isset($$key)) { 
     echo 'The variable $' . $key . ' is undefined.' . PHP_EOL; 
     continue; 
    } 
    echo 'Compare $_POST[\'' . $key . '\'] and $' . $key . ': ' . ($value === $$key ? 'true' : 'false') . PHP_EOL; 
} 

結果:

Compare $_POST['username'] and $username: true 
Compare $_POST['email'] and $email: false 
The variable $firstname is undefined. 
The variable $lastname is undefined. 
Compare $_POST['gender'] and $gender: false 
関連する問題