2017-04-11 1 views
0

두 배열을 비교하려고합니다.배열을 비교하여 여분이고 중복 된 값을 반환합니다.

내 코드에는 고정 배열이 있습니다. 배열 (csv에서 추출한)이 고정 배열과 일치하지 않으면 고정 배열에서 벗어난 값이 반환되어야합니까? 이것을 어떻게 할 수 있습니까?

내가 시도한 것;

$columnsFromFile = array_filter(array_map('trim', array_map('strtolower', $line))); 
$differences = array_diff_key($columnsFromFile, CsvFile::CSV_COLUMNS); 

나는 이와 비슷한 시도를했습니다.

$differences = array_merge(CsvFile::CSV_COLUMNS, array_diff_key($columnsFromFile, CsvFile::CSV_COLUMNS)); 

하지만 실제 일치 항목이 반환됩니다.

+0

@array_equal() 함수를 참조. – AbraCadaver

답변

0

먼저 일치하는 항목이 있는지 확인한 후 일치하는 항목이 있는지 확인한 후 일치하는 항목이 있는지 확인한 다음 새 데이터 만 반환하십시오. 당신이 연관 배열 작동하지 않는 경우

// if associative arrays... 
if($new_array!=$fixed_array){ 
    $differences=array_diff_assoc($new_array,$fixed_array); // this will return only the new/changed keys/values. 
}else{ 
    // identical/no change 
} 

,`$ columnsFromFile`와`CsvFile :: CSV_COLUMNS`의 예를 보여줄 필요가 https://stackoverflow.com/a/6922213/2943403

+0

@ Mentos93 질문에 대한 해결책을 찾아 보겠습니다. 내 대답으로 문제가 해결되면 녹색 눈금으로 표시하십시오. 그렇지 않다면, 귀하의 경우에 적합하지 않은 내용을 설명하는 의견으로 의견을 남겨주십시오. – mickmackusa

+0

@ Mentos93이 질문의 현재 상태는 어떻습니까? 저의 답이 귀하의 문제를 해결한다면, 귀하의 문제를 해결하기 위해 녹색 진드기를 부여하십시오. 그렇지 않다면 도움이 될 수 있도록 유익한 의견을 남겨주세요. – mickmackusa

관련 문제