2012-04-16 39 views
17

Duplicar posibles:
How to check if an array element exists?cómo saber si existe clave en la cadena JSON

disculpas si estoy equivocado, yo soy nuevo en PHP, ¿Hay alguna forma de averiguar si clave existe en Json cadena después de descodificar usando la función json_decode en PHP.

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

Breve:

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

Si cadena JSON no consiste en user_id, se produce una excepción como Undefined index user_id, así que ¿hay alguna manera de comprobar si existe clave en la cadena JSON, por favor me ayude , Estoy usando PHP 5.3 and Codeigniter 2.1 MVC Gracias de antemano

+0

lectura de la documentación podría ayudar: http://www.php.net/manual/en/function.array-key-exists.php –

Respuesta

19

Puede intentar array_key_exists.

Se devuelve un valor booleano, por lo que podría buscar algo así como:

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

SI desea comprobar también si el valor no es null puede utilizar isset

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

es decir, la diferencia entre array_key_exists y isset es que con

$json = {"user_id": null} 

array_key_exists volverá true mientras que isset regresará false

Cuestiones relacionadas