1. for ループ
最も単純かつ直接的な方法は、for ループを使用して配列を走査することです。次元が既知の配列であれば判定できますが、未知の多次元配列の場合はどうすればよいでしょうか。
2. implode();
implode() を使用して配列を文字列として出力し、出力文字列が空かどうかを確認します。一見すると、これは良い方法のように見えますが、残念ながら、前の点と同様に、2 次元を超える配列には機能しません。例:
$arr= array(array(),array(),array());
$str = implode(',',$arr);
if(empty($str)) echo "空" ;
else echo "not empty";
明らかに $arr は 3 つを含む空の配列です。次元配列は空であるとみなされますが、出力は実際には空ではありません。判定は失敗しました。
3. count();
私が最初に思いついたのはこの関数であり、多くのネチズンがこの関数だったことを認めなければなりません。インターネットもこの機能を答えとみなし、問題は解決したと考えていました。ただし、次の例を見てください:
$arr= array("","","");
echo count($arr);
このメソッドについては、これ以上言う必要はないと思います。
4. in_array('', $arr));
あまり言うことはないので、例を見てみましょう:
$arr= array("d","s","");
echo in_array('', $arr) ;
これは、配列内に空の要素があることを示すことしかできませんが、配列が空であることを証明することはできません。明らかに違います。
5. empty();
この cpyeh は前のメソッドと似ています
$arr= array("","","");
if(empty($arr)) echo "空";
else echo "not empty";
結果はまだ空ではありません
上記の例に print_r($arr) を追加できます。見てください...
基本的に cpyeh が考えられるものと、あなたが見つけることができるもの私が理解できないのは、インターネット上の誰かが実際に is_array() について言及しているということです。おそらく、その人は PHP をよく知らないので、もっとマニュアルを読む必要があります。残念ながら、最終的にはまだ完璧な解決策を見つけることができませんでしたが、一般的なアプリケーションでは最初または 2 番目の方法で十分であるため、cpyeh は便利な 2 番目の方法を選択しました。上記の例についてご質問がある場合は、ここにメッセージを残して相互に連絡してください。