2011-07-05 10 views
-4

私は配列を持っています。場合によってはデータがないことがあるので、empty()をチェックして、emtpy配列を削除するかどうか、またはデータが含まれているかどうかを確認しました。私は空の配列でそれを試しましたが、たとえprint_rが空の場合でも、empty()は私に "完全な"配列を与えます。空の配列は "空"ではありません

Array ([0] => Array ([0] => Array ())) 
Array ([0] => Array ([0] => Array ())) 
+1

私はあなたに尋ねようとしていることを理解していません... –

+2

この問題を解決したい場合は、あなたがやっていることのもう少しコードを表示する必要があります... –

+0

もっと明瞭、今? :) –

答えて

2

empty() ' ' 0、および'')(配列ためFALSE、NULLがtrueを返す0であろう。空の配列はempty()ですが、空の配列を含む配列には含まれません。 $配列を仮定し

1

はあなたの例では配列で、これを試してみてください。私はあなたがしようとしている思い

$array = array_filter($array); 
if (empty($array)) 
{ 
    // do what you want 
} 
0

を行うには、すべてを横断します再帰的な関数を記述する必要がありますあなたの多次元配列のすべてのレベルのitemをチェックし、すべての要素のempty()値をチェックします。私はこれがあなたの後であると思います。

function isEmpty($array){ 
    $empty = true; 
    foreach($array as $value){ 
     if(is_array($value)){ 
      if(!isEmpty($value)) $empty = false; 
     }else{ 
      if(!empty($value)) $empty = false; 
     } 
    } 
    return $empty; 
} 

次に、配列に対してisEmpty()を実行します。

0

私はBraedenPが正しいと信じています。

ただし、非常に優れた解決策は、そのアレイを作成する場所でを変更することです。このコンテキストでは、SQL結果セットの行数が0かどうかを検出するのは本当に簡単です。