2014-02-23 1 views
-2

제품 피드에서 2 개의 매우 큰 배열이 있고 둘을 비교하고 일치하지 않는 필드를 반환하고 싶습니다.PHP는 2 개의 다차원 배열을 비교하고 차이를 반환합니다.

array_diff()를 사용해 보았지만 다차원 배열에서는 작동하지 않습니다.

사용할 수있는 기능이 있습니까?

+0

의 중복 가능성 [PHP -이 개 다차원 배열을 비교] (http://stackoverflow.com/questions/19106001/php-comparing-two-multidimensional-arrays) –

+0

아니 그, 텍스트 본문을 읽기 시도하지 .. 제목은 몸을 더 반영하도록 업데이 트되었습니다 .. – TheNickyYo

답변

2

array_diff의 주석에 기능이 구현되어 있습니다.

function arrayRecursiveDiff($aArray1, $aArray2) { 
    $aReturn = array(); 

    foreach ($aArray1 as $mKey => $mValue) { 
    if (array_key_exists($mKey, $aArray2)) { 
     if (is_array($mValue)) { 
     $aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]); 
     if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; } 
     } else { 
     if ($mValue != $aArray2[$mKey]) { 
      $aReturn[$mKey] = $mValue; 
     } 
     } 
    } else { 
     $aReturn[$mKey] = $mValue; 
    } 
    } 
    return $aReturn; 
} 
+0

고마워, 완벽한 작품! – TheNickyYo

관련 문제