다차원 배열과 비교하려고하지만 array_diff_assoc()을 사용할 수 없습니다. 비교하려고하는 배열은 모두 연관 배열이며 키가 같은 순서로 정렬되어 있습니다. 대부분의 배열은 구조가 동일합니다. 배열을 저장하는 요소를 비교하는 방법을 알아낼 수 없다. 하나의 값을 가진 요소를 비교해 볼 수있다. 내가 할 수있는 것을 누구나 알 수 있을까?PHP의 다차원 배열 비교
도움 주셔서 감사합니다.
다차원 배열과 비교하려고하지만 array_diff_assoc()을 사용할 수 없습니다. 비교하려고하는 배열은 모두 연관 배열이며 키가 같은 순서로 정렬되어 있습니다. 대부분의 배열은 구조가 동일합니다. 배열을 저장하는 요소를 비교하는 방법을 알아낼 수 없다. 하나의 값을 가진 요소를 비교해 볼 수있다. 내가 할 수있는 것을 누구나 알 수 있을까?PHP의 다차원 배열 비교
도움 주셔서 감사합니다.
array_diff_assoc()에 대한 설명서 페이지에 user contributed note이 있는데, 사용자가 요구하는 것처럼 보입니다.
평등한지 확인하고 싶거나 실제로 차이점이 무엇인지 출력하고 싶지는 확실하지 않습니다.
는 전자를 있다면 당신은 재귀 함수와, 그것을 적절한 방법을 할 수있는 :
$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))
을 서로 다르면 (구체적으로 다른 것은 아닙니다) 다음과 같이 시도해보세요.
return serialize($array1) == seralize($array2);
그것은 두 배열의 평등에 대한 네 또는 네아를 줄 것입니다.
광고. 나는 그것을 좋아한다. +1 –
이것은 정확히 내가 필요한 것입니다. 나는 매뉴얼을 볼 때 그것을 놓쳤다. 롤! – cskwrd