2012-03-13 10 views
2

可能性の重複の場合:
Checking if array is multidimensional or not?チェック配列は多次元

どのように私は配列はPHPで多次元であるかどうかをチェックしますか?

+0

に追加されました、私はこの1つは持っていると思いますOMのものが選ばれたと仮定して、より良い「答え」を返します。 – Ascherer

+0

@Ascherer:その答えは重複した質問でも利用できます。重複した質問を開いたままにするよりも、追加情報を使ってその回答を編集するほうがはるかに魅力的です。 – animuson

+0

他のポスターにその回答を受け入れることが必要です – Ascherer

答えて

24

利用、二回、単一のパラメータを持つものをカウントし、再帰モードで1つの

if (count($myarray) == count($myarray, COUNT_RECURSIVE)) 
{ 
    echo 'MyArray is not multidimensional'; 
} 
else 
{ 
    echo 'MyArray is multidimensional'; 
} 

数は必須(配列、モード)

  • 配列---。カウントする配列またはオブジェクトを指定します。
  • モード---オプションです。関数のモードを指定します。可能な値:

    • 0 - デフォルトです。多次元配列(配列内の配列に)
    • 1が検出されない -

多次元配列を検出します。注:このパラメータはPHP 4.2

+1

このような配列 - ['a'、 'b'、[]]なら、 –

1

PHPの多次元配列は配列を含む単純な配列です。したがって、このための簡単な関数は

function is_multidim_array($arr) { 
    if (!is_array($arr)) 
    return false; 
    foreach ($arr as $elm) { 
    if (!is_array($elm)) 
     return false; 
    } 
    return true; 
} 

これは$arrのすべての要素を介して実行し、それが配列だかどうかをチェックするように書くことができます。配列ではない要素に遭遇した場合、falseを返します。それ以外の場合はtrueを返します。

+1

多次元と思われるものによって異なります。私は多次元である別の配列を含む配列を検討します。すべての単一の値は必ずしも別の配列である必要はありません。 – animuson

+1

私は、配列が多次元配列であった配列も考えています – jcolebrand

+0

これは '[1、[1,2]]では機能しません。 – Antti29