2012-09-04 10 views
14

Cualquier idea sobre cómo verificar si existe una clave y si es así, obtenga el valor de esta clave de una matriz en php.Compruebe si existe una clave y obtenga el valor correspondiente de una matriz en PHP

E.g.

que tienen esta matriz:

$things = array(
    'AA' => 'American history', 
    'AB' => 'American cooking' 
); 

$key_to_check = 'AB'; 

Ahora, tengo que comprobar si $ key_to_check existe y si es así, obtener un valor coresponding que en este caso será la cocina americana

+1

[¿Qué has probado] (http://www.whathaveyoutried.com)? – Matt

+0

Matt He intentado http://www.php.net/manual/en/function.array-key-exists.php pero me estaba metiendo demasiado complicado. De hecho es muy simple. Por cierto. verifique los comentarios marcados de mi parte. He intentado 3 veces marcar un comentario sobre mi pregunta anterior de Jack, porque es realmente oftálico, sin ninguna respuesta de un moderador. Gracias por adelantado. – Derfder

+0

Si está usando Laravel, tienen algunas funciones de ayuda de array. Por ejemplo: 'array_get ($ cosas, $ key_to_check, 'valor predeterminado opcional');' https://laravel.com/docs/5.1/helpers#method-array-get – Justin

Respuesta

21
if(isset($things[$key_to_check])){ 
    echo $things[$key_to_check]; 
} 
+0

Muchas gracias, te daré un tick en un minuto más o menos – Derfder

1

El enfoque más simple es hacer esto:

if(isset($things[ $key_to_check ])) { 
    $value = $things[ $key_to_check ]; 
    echo "key exists. Value: ${value}"; 
} else { 
    echo "no such key in array"; 
} 

y se obtiene el valor de forma habitual:

$value = $things[ $key_to_check ]; 
+0

y cómo se supone que debe devolver el valor correspondiente? – Phil

+0

ver respuesta editada –

19
if (array_key_exists($key_to_check, $things)) { 
    return $things[$key_to_check]; 
} 
+0

'echo' o' return'? Él no está en una función ... –

+3

Sin embargo, él quiere implementarlo, su código está incompleto. – JaredMcAteer

+0

Si él no sabe cómo obtener un valor basado en una clave, ¿espera comprender lo que usted quiso decir? –

0

sólo tiene que utilizar isset(), se puede usar de la siguiente manera si desea utilizarlo como una función:

function get_val($key_to_check, $array){ 
    if(isset($array[$key_to_check])) { 
     return $array[$key_to_check]); 
    } 
} 
14

que sé esta pregunta es muy antigua, pero para aquellos que vendrán aquí Puede ser útil saber que en php7 puede usar Null Coalesce Operator

if ($value = $things[ $key_to_check ] ?? null) { 
     //Your code here 
} 
Cuestiones relacionadas