2016-05-24 3 views
0

に等しいかどうかの確認:私は、ユーザーのすべての名前(すなわち「ユーザー1」または「ユーザー2」)を取得したいはJSONオブジェクトの名前は、だから私は、基本的なJSONファイル持っている何か

{ 
    "User1": { 
     "id": 1, 
     .... 
    }, 
    "User2": { 
     "id": 3 
     .... 
    } 
} 

をチェックユーザーによって入力された名前がそれらの名前の1つと等しい場合。

私はこれを試してみたが、それは動作しません:

foreach($this->blackList as $user) { 
    if($user == $username) 
     return "TRUE"; 
    } 
    return "FALSE"; 
} 
+0

var_dumpを使用してjsonオブジェクトをダンプすると、構造体が表示されます。 – Borna

答えて

1

私はあなたがすべてでループする必要はないと思う

return property_exists($this->blackList, $username); 
+0

これは前の答えより効率的ですか? – madcrazydrumma

+0

あなたは効率的に何を意味するかによって異なります。実行時間やメモリ使用量に関してはわかりません。コードが少なくて済むという意味では、そうです。 –

+0

もう1つの答えには間違いありません。私は代わりの方法を提供していただけでした。 –

2

私はの$ this - >ブラックリストは、あなたのJSON文字列をデコードしていることを前提としています。 yesの場合、コードは次のようになります。あなたの代わりに、配列のオブジェクトにjson_decodedを持っている場合

return array_key_exists($username, $this->blackList); 

または::

foreach($this->blackList as $blackName => $user) { 
    if($blackName == $username) 
     return true; 
    } 

} 
return false; 
+0

はい、申し訳ありませんが、完全にありがとうございます! – madcrazydrumma

+0

それで完璧に働くなら、私の答えは終了してください。 – nospor

+0

答えを受け入れるのを待っています – madcrazydrumma

関連する問題