2016-09-14 9 views
1

두 개의 배열이 있는데 두 번째 배열이 첫 번째 배열인지 확인하고 싶습니다. 배열 :다차원 배열을 가진 배열의 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

[한 배열을 검사하는 방법은 다른 배열의 정확한 하위 집합입니다 - PHP 배열] (http://stackoverflow.com/questions/12276565/how-to-check-one-array-is-exact-subset-of -nother-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

당신이 시도한 것을 볼 수있는 좋은 접근법이지만 두 번째 배열이'[ 'group'=> [ 'list'=> FALSE] ' –

+1

$이면 적합하지 않습니다. cnt = 0; { \t \t \t \t의 foreach \t 경우 (카운트 ($ second_array)> 0) { \t \t의 foreach ($ second_array $로서 키 => $ 값) { \t \t \t (0 카운트 ($ first_array)>) ($ first_array 같은 $ key_1 => $ 값 1) { \t \t \t \t \t 경우 ($ 키 == $ key_1) { \t \t \t \t \t \t $ CNT ++; \t \t \t \t \t \t} \t \t \t \t \t }} \t \t \t \t }} –