web-dev-qa-db-ja.com

PHPで配列がnullかどうかを確認します

Xml urlを解析して生成される以下のような配列があります。

配列は

Array
  (
 [Tags] => SimpleXMLElement Object
    (
        [0] => 

    )
  )

配列名は$result。ここで、上記のように配列が受信された場合、失敗のメッセージを出力することを確認します。しかし、if条件でこの配列をチェックする方法は?

17
Manish Jangir

使用できます

empty($result) 

メイン配列が空かどうかを確認します。

ただし、SimpleXMLElementオブジェクトがあるため、オブジェクトが空かどうかを照会する必要があります。 http://www.php.net/manual/en/simplexmlelement.count.php を参照してください

例:

if (empty($result) || !isset($result['Tags'])) {
    return false;
}
if ( !($result['Tags'] instanceof SimpleXMLElement)) {
    return false;
}
return ($result['Tags']->count());
38
Martin Samson

修正済み;

/*
 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;
  }
}
3
Webbu
this check if array is empty 

    if (!empty($result) {
       // do stuf if array is not empty
    }else{

      // do stuf if array is empty
    }

this check array is null or not


 if (is_null($result) {
       // do stuf if array is null
    }else{

      // do stuf if array is not null
}
2
Anish Rai

^ _ ^の前の2人の正しいコード

/* 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;
}
2

私はあなたが望むものを理解しています。すべてが空であるか、少なくとも1つが空でない場合、配列のすべてのデータをチェックする

空の配列

配列([タグ] => SimpleXMLElementオブジェクト([0] =>))

空の配列ではない

配列([タグ] => SimpleXMLElementオブジェクト([0] =>、[1] => "s"))


私が正しいことを願っています。少なくとも1つのデータに値がある場合、この関数を使用して配列のすべてのデータをチェックできます。

/*
 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
}

お役に立てば幸いです。

1
Leysam Rosario

配列が[null]または[null、null]または[null、null、null、...]のように見える場合

あなたは内破を使用することができます:

implodeは、配列を文字列に変換するために使用されます。

if(implode(null,$arr)==null){
     //$arr is empty
}else{
     //$arr has some value rather than null
}
1
shajji