2009-07-15 11 views
0

다차원 배열과 비교하려고하지만 array_diff_assoc()을 사용할 수 없습니다. 비교하려고하는 배열은 모두 연관 배열이며 키가 같은 순서로 정렬되어 있습니다. 대부분의 배열은 구조가 동일합니다. 배열을 저장하는 요소를 비교하는 방법을 알아낼 수 없다. 하나의 값을 가진 요소를 비교해 볼 수있다. 내가 할 수있는 것을 누구나 알 수 있을까?PHP의 다차원 배열 비교

도움 주셔서 감사합니다.

답변

2

array_diff_assoc()에 대한 설명서 페이지에 user contributed note이 있는데, 사용자가 요구하는 것처럼 보입니다.

+0

이것은 정확히 내가 필요한 것입니다. 나는 매뉴얼을 볼 때 그것을 놓쳤다. 롤! – cskwrd

1

평등한지 확인하고 싶거나 실제로 차이점이 무엇인지 출력하고 싶지는 확실하지 않습니다.

는 전자를 있다면 당신은 재귀 함수와, 그것을 적절한 방법을 할 수있는 :

$array1 = array('a' => 1, 'b' => 2, 'c' => array('ca' => 1, 'cb' => array('foo'))); 
$array2 = array('a' => 1, 'b' => 2, 'c' => array('ca' => 1, 'cb' => array('bar'))); 

var_dump(arrayEqual($array1, $array2)); 

function arrayEqual($a1, $a2) 
{ 
    if (count(array_diff($a1, $a2))) 
     return false; 

    foreach ($a1 as $k => $v) 
    { 
     if (is_array($v) && !arrayEqual($a1[$k], $a2[$k])) 
      return false; 
    } 

    return true; 
} 

또는 같은 완벽한 해킹 사용하여 그냥 보려고하면

if (serialize($array1) == serialize($array2)) 
3

을 서로 다르면 (구체적으로 다른 것은 아닙니다) 다음과 같이 시도해보세요.

return serialize($array1) == seralize($array2); 

그것은 두 배열의 평등에 대한 네 또는 네아를 줄 것입니다.

+0

광고. 나는 그것을 좋아한다. +1 –