比较数组以返回额外和重复的值

时间:2017-04-11 14:07:54

标签: php arrays

我试图比较两个阵列。

我的代码中有一个固定的数组。如果数组(从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));

但是返回了实际的匹配。

1 个答案:

答案 0 :(得分: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
}

如果您不使用关联数组,请参考array_equal()函数@ https://stackoverflow.com/a/6922213/2943403