我试图比较两个阵列。
我的代码中有一个固定的数组。如果数组(从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 :(得分: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