Compruebe si la matriz es nula o no en php

3 minutos de lectura

Avatar de usuario de Manish Jangir
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?

  • ¿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


Avatar de usuario de Martin Samson
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());

Avatar de usuario de Anish Rai
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;
}

Avatar de usuario de Leysam Rosario
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.

avatar de usuario de shajji
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
}

¿Ha sido útil esta solución?