Manish Jangir
Tengo una matriz como la siguiente que se genera al analizar una URL xml.
la matriz es
Array
(
[Tags] => SimpleXMLElement Object
(
[0] =>
)
)
El nombre de la matriz es $result
. Ahora quiero verificar que si la matriz recibió como arriba, quiero imprimir un mensaje de falla. Pero, ¿cómo verificar esta matriz en condición if?
Martín Sansón
puedes usar
empty($result)
para verificar si la matriz principal está vacía o no.
Pero dado que tiene un objeto SimpleXMLElement, debe consultar el objeto si está vacío o no. Ver http://www.php.net/manual/en/simplexmlelement.count.php
ex:
if (empty($result)) {
return false;
}
if ( !($result['Tags'] instanceof SimpleXMLElement)) {
return false;
}
return ($result['Tags']->count());
Anish Rai
Esto verifica si la variable no está configurada o contiene un valor falso (cero, cadena vacía, matriz vacía, etc.)
if (!empty($result) {
// do stuff if the variable is not empty
} else {
// do stuff if the variable is empty
}
Esto comprueba si la variable es nula
if (is_null($result) {
// do stuff if the variable is null
} else {
// do stuff if the variable is not null
}
corregido;
/*
return true if the array is not empty
return false if it is empty
*/
function is_array_empty($arr){
if(is_array($arr)){
foreach($arr as $key => $value){
if(!empty($value) || $value != NULL || $value != ""){
return true;
break;//stop the process we have seen that at least 1 of the array has value so its not empty
}
}
return false;
}
}
-
la ruptura no tiene efecto ya que return true cerrará el proceso. A su código le falta una declaración de devolución en cas is_array devuelve falso.
– Med Hajlaoui
23 de febrero de 2017 a las 20:17
Código correcto de dos personas antes ^_^
/* return true if values of array are empty
*/
function is_array_empty($arr){
if(is_array($arr)){
foreach($arr as $value){
if(!empty($value)){
return false;
}
}
}
return true;
}
leysam rosario
Entiendo lo que quieres. Desea verificar todos los datos de la matriz si todos están vacíos o al menos 1 no está vacío
Matriz vacía
matriz (
[Tags] => Objeto SimpleXMLElement (
[0] => ) )
No es una matriz vacía
matriz (
[Tags] => Objeto SimpleXMLElement (
[0] =>,[1] => “s” ) )
Espero estar en lo cierto. Puede usar esta función para verificar todos los datos de una matriz si al menos 1 de ellos tiene un valor.
/*
return true if the array is not empty
return false if it is empty
*/
function is_array_empty($arr){
if(is_array($arr)){
foreach($arr $key => $value){
if(!empty($value) || $value != NULL || $value != ""){
return true;
break;//stop the process we have seen that at least 1 of the array has value so its not empty
}
}
return false;
}
}
if(is_array_empty($result['Tags'])){
//array is not empty
}else{
//array is empty
}
Espero que ayude.
shajji
si la matriz se ve así [null] o [null, null] o [null, null, null, …]
puedes usar implosionar:
implode se usa para convertir una matriz en una cadena.
if(implode(null,$arr)==null){
//$arr is empty
}else{
//$arr has some value rather than null
}
¿Intentó si (vacío ($ resultado) || vacío ($ resultado)[‘Tags’]))??
– SERPRO
9 de noviembre de 2011 a las 16:36
if(empty($result['Tags'][0]))
¿quizás?– janoliver
9 de noviembre de 2011 a las 16:36
¿Has probado isset is_array is_null? . . ?
– Mafia
9 de noviembre de 2011 a las 16:37
Una matriz no puede ser nula. Si es nulo, entonces no es una matriz: es nulo.
– Carreras de ligereza en órbita
9 de noviembre de 2011 a las 17:31
Además, es hora de que aceptes algunas respuestas anteriores. Hay respuestas que ha sugerido en los comentarios que son correctas y útiles en al menos varias de sus preguntas.
– Carreras de ligereza en órbita
9 de noviembre de 2011 a las 17:32