2016-05-24 2 views
0

Так что у меня основной JSon файл:Проверка Если имя JSon объекта равно что-то

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

Я хочу, чтобы все имена пользователей (т.е. «User1» или «User2») и проверка если имя, введенное пользователем, равно одному из этих имен.

Я попытался это, но он не работает:

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

вы можете сбросить объект json с помощью var_dump, чтобы вы могли видеть структуру ... – Borna

ответ

1

Я не думаю, что вам нужно петли на всех:

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

Или если у вас есть json_decoded на объект вместо массива:

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

Является ли это более эффективным, чем предыдущий ответ? – madcrazydrumma

+0

Зависит от того, что вы подразумеваете под эффективностью. Что касается времени выполнения или использования памяти, я не уверен. Да, с точки зрения отсутствия кода. –

+0

Нет ничего плохого в другом ответе. Я просто предлагал альтернативный подход. –

2

Я предполагаю, что $ this-> BLACKLIST декодируется вашу строку JSON. Если да, то код должен выглядеть следующим образом:

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

} 
return false; 
+0

Да, извините, это отлично работает! – madcrazydrumma

+0

Итак, если он отлично работает, пожалуйста, пометьте мой ответ как готовый :) – nospor

+0

Ожидание ответа – madcrazydrumma

Смежные вопросы