2017-04-11 1 views
0

2つの配列を比較しようとしています。余分で重複している値を返すために配列を比較します。

私は自分のコードで固定配列を持っています。配列(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()関数を参照 '$ columnsFromFile'と'たcsvfile :: CSV_COLUMNS'の一例を示す必要があります。 – 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 
} 

https://stackoverflow.com/a/6922213/2943403

+0

@ Mentos93あなたの質問を解決に向かって進もう。私の答えがあなたの問題を解決するなら、それを緑のダニでマークしてください。そうでない場合は、あなたのケースでは適切ではないことを説明するコメントとしてフィードバックを残してください。 – mickmackusa

+0

@ Mentos93この質問のステータスはどうですか?私の答えがあなたの問題を解決するなら、あなたの質問が解決したことを示す緑のチックを与えてください。そうでない場合は、私が助けることができるように私に有益なコメントを残してください。 – mickmackusa

関連する問題