Php 比较两个数组的差异,并重复某些值

Php 比较两个数组的差异,并重复某些值,php,arrays,excel,Php,Arrays,Excel,我有两个数组要比较,我使用array_diff计算列的差异,如下所示: //array1 is as static array I have created to validate the sheet columns $array1 = array('Category','Subcategory','Unknown','Age','0-9','Unknown','Region','Zone'); // array2 is coming dynamically from excel sheet

我有两个数组要比较,我使用
array_diff
计算列的差异,如下所示:

//array1 is as static array I have created to validate the sheet columns
$array1 = array('Category','Subcategory','Unknown','Age','0-9','Unknown','Region','Zone'); 

// array2 is coming dynamically from excel sheet columns so user can change the names
$array2 = array('Category','Subcategory','Unknowns','Age','0-9','Unknown','Region'); 

$diff = array_diff($array1,$array2);
$columnNames = implode(',',$diff);
if(!$diff){
   return true;
}
else{
  echo 'Some columns are missing:'. $columnNames ;
}
输出:
区域

预期输出:
区域,未知

如果
未知
列保持不变,则上述代码可以正常工作。我知道array_diff只会检查第一个数组,并比较下一个数组中的值。但是,我想比较这些数组,并向用户显示一条消息,指出缺少某些列及其名称。因此,如果excel工作表中的一列更改为
未知数
,即
array2
,则应显示错误消息
某些列缺失:区域,未知数

请尝试此代码

array_merge(array_diff($array1,$array2),array_diff($array2,$array1))

参考资料:

只需在PHP中使用array\u diff\u assoc函数尝试一下:

     //array1 is as static array I have created to validate the sheet columns
 $array1 = array('Category','Subcategory','Unknown','Age','0-9','Unknown','Region','Zone'); 

 // array2 is coming dynamically from excel sheet columns so user can change the names
 $array2 = array('Category','Subcategory','Unknowns','Age','0-9','Unknown','Region'); 

 $diff = array_diff_assoc($array1,$array2);
 $columnNames = implode(',',$diff);

 echo $columnNames;

请访问此站点以供参考

您可以从两个阵列的并集中删除两个阵列的交集

$array = array_diff(array_merge($array1, $array2), array_intersect($array1, $array2));

对不起,我的坏消息,刚刚再次检查,它对我有效。谢谢之所以被接受,是因为它更简单,也适用于空列