Quiero identificar rápidamente si una clave está presente en una matriz, para evitar arrojar un error.Cómo verificar si un valor de matriz profunda está presente
Por ejemplo, podría tener una serie como esta
$arr['f']['b']['g'] = array('a', 'b', 'c',) ;
O la matriz podría no tener ninguna variable en $ matriz [ 'f'] [ 'b'] en absoluto:
$arr['f']['x'] = array() ;
¿Cómo puedo evitar la repetición en una prueba al hacer referencia al (quizás) contenido de $ arr ['f'] ['b'] ['g']?
if (isset($arr['f']) &&
isset($arr['f']['b']) &&
isset($arr['f']['b']['g']) /* ... yawn */) {
/* blah */
}
Debe existir una forma más simple de identificar si existe un valor de matriz dado al que estoy haciendo referencia. Parece demasiado verboso tener que probar la presencia tanto del valor que busco, como de todos sus ancestros. En algunas circunstancias, eso tiene sentido, sí, pero no todo.
Por ejemplo: se puede representar, por ejemplo, el usuario> session-> carro, donde quiero una manera de comprobar rápidamente si el carrito tiene entradas, sin tener que incluir un cheque cada uno por si el usuario existe, entonces si existe o no la sesión, entonces si existe el carrito , entonces ...
Editar: no estoy buscando "hace un valor de matriz con un nombre clave de 'g' existen", como "existe un valor de matriz con un ancestro de f => b => g".
¡Huh! Bien visto :) –
Solo para aclarar, esto también prueba de forma segura la existencia de '$ a': devuelve falso si' $ a' no está establecido. –
Wow, estuvo seguro durante años que esto no funciona. Lol. – baldrs