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));
对不起,我的坏消息,刚刚再次检查,它对我有效。谢谢之所以被接受,是因为它更简单,也适用于空列