2017-06-12 5 views
0

私は2つの潜在的な応答配列を持っていますが、どちらが得られるかわかりません。 は、しかし、私は、それはこれらの次のいずれかになりますことを知っている:同じ数のマルチディムアレイと1次元アレイを区別する方法は?

  • 1 - キーと値を持つ配列が含まれている場合があり が - 唯一のキーと値を含めることができます

私の目標はにあります私の応答がそのカテゴリの1つに落ちているかどうかを確認して、それに基づいて論理を立てます。

私はPHP count()関数を使用しようとしましたが、両方とも同じ値である2 - を返します。

どのような応答が得られるのかを確認するにはどうすればよいですか?

配列#1

array:2 [▼ 

    0 => array:2 [▼ 

     "content" => "Administrator" 
     "XSI:TYPE" => "xs:string" 

    ] 
     1 => array:2 [▼ 

     "content" => "Read Only" 
     "XSI:TYPE" => "xs:string" 

    ] 
] 

配列#2

array:2 [▼ 

    "content" => "Read Only" 
    "XSI:TYPE" => "xs:string" 
] 
+0

確かに、それらの数は同じです。最初の配列には2つの配列が含まれ、2つ目の配列には2つの文字列が含まれます。 –

+0

['array_diff()'](http://php.net/manual/en/function.array-diff.php)を試しましたか? – alanlittle

+0

@ Don'tPanic:どのようなPHP関数は2の間で違いを確認する?あなたは知っていますか ? – ihue

答えて

2

私はproposed by cmorrissey in the comments最高思われたそのように同意:

あなたは配列のキーを知っているので、これは
if(isset($myArray['content'])){ } else { }


をチェックするための最速の方法だろうにと配列キーが何であるかわからない場合は、私の以前の答えはまだ動作するはずです:

配列の最初の項目を取得します。

$first = reset($array); 

それを数えます。

また、is_array($first)を使用することもできます。それは少し速いかもしれません。

1

私は、これは同じカウントの二つの配列を区別するのお手伝いをすると思います。 COUNT_RECURSIVEフラグにcount機能を使用することができます。

Try this code snippet here

if(count($array1,COUNT_RECURSIVE)==count($array2,COUNT_RECURSIVE)) 
{ 
    echo "Both's value are strings with equal count"; 
} 
elseif(count($array1,COUNT_RECURSIVE)>count($array2,COUNT_NORMAL)) 
{ 
    echo "Array one is array of arrays"; 
} 
else 
{ 
    echo "Array two is array of arrays"; 
} 
0
私は逐語的な質問を理解し、私の最初の気持ちはあなたが親配列に子配列要素を持っているかどうかを確認する意味である

全くわかりませんか?

その場合、私はあなたが意味すると思いますか?

foreach ($response as $element) { 

    if (is_array($element)) { 
     // The element is an array 
    } else { 
     // The element is not an array 
    } 
} 
1

私は、配列内に他の配列が存在するかどうかを知る必要があることを理解しています。私はこの可能な解決策を持っています。

私たちは、この方法のような配列を持つことができます:それは、整数、文字列と配列を

$array = array(1, "string", array(1, 2)); 

持っています。 gettype()関数を使って物の型を得ることができます。

integer 
string 
array 

我々はこれを行うことができます:

foreach($array as $row) { 
    echo gettype($row) . '<br>'; 
} 

我々は次の結果があります。この例では

foreach($array as $row) { 
    if(gettype($row) == 'array') { 
    echo "This is an array<br>"; 
    } else { 
    echo "Keep trying guy...<br>"; 
    } 
} 

、結果はつもりこと:

Keep trying guy... 
Keep trying guy... 
This is an array 

私はこの手助けをしたいと思います。「Love to code」を思い出してください。)

関連する問題