2012-03-27 1 views
1

나는 두 개의 배열을 가지고 있는데, array_diff_assoc() PHP 함수를 사용하면 차이를 얻을 수 있지만, 항상 comm 값을 차이로 반환하지만 새로운 q 세트가 무엇인지 이 문제,php array_diff_assoc()가 잘못된 차이를 낸다

가 사용 array_diff_assoc() 연산 후

Array ([0] => Array ([12] => new q sets) [1] => Array ([11] => common set)) 

Array ([0] => Array ([11] => common set)) 

을 arrays-- 도와주세요

Array ([1] => Array ([11] => common set)) 
+0

나에게 맞는 것 같습니다. –

답변

6

키 => 값 쌍의 두 값은 (string) $elem1 === (string) $elem2 인 경우에만 동일하게 간주됩니다. 즉, 문자열 표현이 동일해야하므로 엄격한 검사가 수행됩니다. http://php.net/manual/en/function.array-diff-assoc.php

The (string) value of any array is "Array".

따라서, array_diff_assoc에 전화 효과적으로 이러한 두 가지를 비교한다 :

Array ([0] => "Array" [1] => "Array") 
Array ([0] => "Array") 

이후 두가 [1] 키/값 쌍에서입니다 사이에 다른 것은 첫 번째 배열, 당신은 그것을 얻을 ([1] => Array([11] => common set)). array_diff_assoc()에서

+0

그래서 어떻게 해결할 수 있습니까 ..? –

+0

@Suneth array_diff_assoc() 함수의 첫 번째 변수로 두 번째 배열을 넣습니다. – Nick

+0

@Nick 이것은 빈 배열을 제공합니다. –

1

도 키가 비교됩니다. 두 번째 배열에서 [0]을 사용할 수 있고 두 번째 배열에서 [1]을 사용할 수 없으므로 결과가 Array ([1] => Array ([11] => 공통 집합) 인 이유가됩니다.

+0

그래서 어떻게 해결할 수 있을까요 :) –

관련 문제