2016-09-14 17 views
1

2つの配列があり、2番目の配列が最初の配列であるかどうかを確認する必要があります。アレイ:多次元配列を持つ配列のPHP配列

最初の配列:

array(1) { 
    ["group"]=> 
    array(3) { 
    ["create"]=> 
    bool(true) 
    ["edit"]=> 
    bool(true) 
    ["delete"]=> 
    bool(true) 
    } 
} 

二番目の配列

array(1) { 
    ["group"]=> 
    array(1) { 
    ["create"]=> 
    bool(true) 
    } 
} 

深さは

in_arrayが機能しない異なっていることができる - へ>アレイ変換エラーがあり、それはmi assoc配分をしてください 私は多くの検索とテストを試みましたが、必要なものは見つかりませんでした。あなたの誰かが私を助けてくれることを願っています!

+0

は動作しないことhttp://stackoverflow.com/questions/4128323/in-array-and-multidimensional-array – Sasikumar

+0

@Sasikumarこれをチェックしてみて、私はすでにこれを試み、それはまた、収まりません私の目標。 –

+0

[1つの配列をチェックする方法は別の配列の正確なサブセットです - php配列](http://stackoverflow.com/questions/12276565/how-to-check-one-array-is-exact-subset-of -another-array-php-array) –

答えて

0

@Jignesh Prajapatiのアプローチで、私は最終的に解決策を見つけました。ありがとうございました!

function test($first_array, $second_array) { 
    $found = FALSE; 

    if(is_bool($second_array) && is_bool($first_array)) { 
     return $second_array === $first_array; 
    } 

    if(is_array($first_array) && is_array($second_array)) { 
     foreach($second_array as $key => $value) { 
      foreach($first_array as $key_1 => $value_1) { 
       if($key === $key_1) { 
        $found = test($value_1, $value); 
       } 
      } 
     } 
    } 

    return $found; 
} 
1
$cnt = 0; 
    foreach ($second_array as $key => $value) { 
      foreach ($first_array as $key_1 => $value_1) { 
       if($key == $key_1){ 
        $cnt++; 
       } 
      } 
    } 

    if($cnt > 0){ 
     echo "second array element in first array"; 
    }else{ 
     echo "not in array"; 
    } 
+0

あなたが試したことは良いアプローチですが、2番目の配列が '['group' => ['list' => FALSE]]' –

+1

$ cnt = 0; \t { \t \t \t \tのforeach(カウント($ second_array)> 0){ \t \t foreachの($キー=> $値として$ second_array){ \t \t \t(0カウント($ first_array)>)もし($ first_arrayとして$ key_1 => $値_1){ \t \t \t \t \t IF($キー== $ key_1){ \t \t \t \t \t \t $ CNT ++。 \t \t \t \t \t} \t \t \t \t} \t \t \t} \t \t} \t} –