2012-04-16 13 views
17

Powiel możliwe:
How to check if an array element exists?jak wiadomo, czy klucz istnieje w ciąg JSON

przepraszam jeśli się mylę, jestem nowy w PHP Czy istnieje jakiś sposób, aby dowiedzieć się, czy klucz istnieje w ciągu Json po dekodowaniu przy użyciu funkcji json_decode w PHP.

$json = {"user_id":"51","password":"abc123fo"}; 

Brief:

$json = {"password":"abc123fo"}; 
$mydata = json_decode($json,true); 
user_id = $mydata['user_id']; 

Jeśli json ciąg nie składa się z user_id, zgłasza wyjątek jak Undefined index user_id, więc jest jakiś sposób, aby sprawdzić, czy klucz istnieje w ciąg JSON, proszę mi pomóc , Używam PHP 5.3 and Codeigniter 2.1 MVC Z góry dzięki

+0

Czytając dokumenty mogą pomóc: http://www.php.net/manual/en/function.array-key-exists.php –

Odpowiedz

19

Możesz spróbować array_key_exists.

Zwraca wartość logiczną, więc można sprawdzić, że coś takiego:

if(array_key_exists('user_id', $mydata)) { 
    //key exists, do stuff 
} 
37

jeśli chcesz również sprawdzić, czy wartość nie jest null można użyć isset

if(isset($mydata['user_id'])){ 
    // do something 
} 

tj różnica między array_key_exists i isset jest taka sama jak w przypadku

$json = {"user_id": null} 

array_key_exists powróci true natomiast isset powróci false

Powiązane problemy