2016-09-06 7 views
0

配列が多次元であるかどうかを確認するにはどうすればよいですか?配列が多次元かどうかを確認する方法は?

私はこのような何かが働くだろう知っている:

is_array($arr[0]) 

しかし、より良い方法はありますか?

+1

あなたの配列は、次元が均等*であることが保証されているか、*ジグザグ*である可能性があります。つまり、配列( 'foo'、array( 'bar')) '(ジグザグ配列) – deceze

+0

それは良いと速いです – Mojtaba

答えて

2

is_array($arr[0])は、最初のインデックスが配列でない場合は機能しません。おそらく、次はもっと正確である:これはまた、トリックを行う必要があります

is_array($arr) && count(array_filter($arr,'is_array')) > 0 
+3

何か短絡が望ましいと思います(デフォルトではPHPが持っていない 'any()'の実装です)... – deceze

1

:配列が多次元の場合は、別の結果を返しますCOUNT_RECURSIVEフラグと

if (count($arr) !== count($arr, COUNT_RECURSIVE)) { 
    // do something .. 
} 

count()

+2

すべての要素にデータが含まれていることがわかっているのであれば、空のサブアレイ要素があります.... [demo](https://3v4l.org/ZmS8i) –

+0

@MarkBaker良いヒント。私はこの行動を知らなかった。 – simon