代码来源:自己整理编写
说明:用PHP严格比较两个数组之间的差异,连数据类型都要比较。
<?php
//二维数组解决方案
function checkData( $XMLData=[], $otherData=[], &$XMLDiff=[], &$otherDiff=[], &$field) {
$k = 'id';
$XMLMap = [];
foreach ( $XMLData as $value ){
$XMLMap[$k] = $value;
}
foreach ($otherData as $value){
$_otherDiff = []; $_XMLDiff = [];
compareArr($value, $XMLMap[$k], $_otherDiff, $_XMLDiff);
if( $_otherDiff ){
array_push($otherDiff, $value);
array_push($XMLDiff, $XMLMap[$k]);
array_push($field, array_keys($_otherDiff));
}
}
}
/**
* 严格比对两个一维数组之间键和值的差异。
* @param array $dataOne 一维数组
* @param array $dataTwo 一维数组
* @param array $oneDiff 数组一所独有的键值对
* @param array $twoDiff 数组二所独有的键值对
*/
function compareArr( $dataOne=[], $dataTwo=[], &$oneDiff=[], &$twoDiff=[] ){
foreach ( $dataOne as $key => $value ) {
if( !isset($dataTwo[$key]) || $dataTwo[$key] !== $value ){
$oneDiff[$key] = $value;
$twoDiff[$key] = $dataTwo[$key];
}
}
}
本文由 陌上花开 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 1, 2016 at 06:21 am