首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何求出两个数组的差异

如何求出两个数组的差异
EN

Stack Overflow用户
提问于 2014-12-23 07:34:58
回答 2查看 81关注 0票数 1

因此,我有两个数组,在执行var_dump时是这样的:

代码语言:javascript
复制
array(4) { 
    ["DatabinFieldName_1"]=> string(7) "Heading" 
    ["DatabinFieldType_1"]=> string(13) "VARCHAR (255)" 
    ["DatabinFieldName_3"]=> string(11) "DateCreated" 
    ["DatabinFieldType_3"]=> string(8) "DATETIME" 
}

array(8) { 
    ["DatabinFieldName_1"]=> string(7) "Heading" 
    ["DatabinFieldType_1"]=> string(13) "VARCHAR (255)" 
    ["DatabinFieldName_2"]=> string(4) "Copy" 
    ["DatabinFieldType_2"]=> string(4) "TEXT" 
    ["DatabinFieldName_3"]=> string(11) "DateCreated" 
    ["DatabinFieldType_3"]=> string(8) "DATETIME" 
    ["DatabinFieldName_4"]=> string(8) "Comments" 
    ["DatabinFieldType_4"]=> string(4) "TEXT" 
}

我需要得到结果的差异。我试过用这个代码。

代码语言:javascript
复制
// Get POST Array                               
$databinPostArray = $_POST;                             

// Get Databin Array
$databinObject =json_decode($nbase->getwhere("Databins","ID='".$databinID."' LIMIT 1;",$_SESSION["UserDB"]));
$databinArray= unserialize($databinObject[0]->DatabinArray);

var_dump($databinPostArray);
var_dump($databinArray);

$result = array_diff($databinPostArray, $databinArray);

print_r($result);

问题是我一直在取回Array(),这意味着即使存在差异,它也找不到任何不同之处。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-23 07:48:38

array_diff()返回第二个数组的元素,这些元素不在第一个one.So中,您的问题的答案是:

代码语言:javascript
复制
$result = array_diff($databinPostArray, $databinArray);
if (couunt($result) == 0) {
    $result = array_diff($databinArray, $databinPostArray);
}

这样,无论$databinPostArray还是$databinArray中有更多的键,差异都将被返回。

如果您只想检查$databinArray中的哪些元素,而不是$databinPostArray中的元素,请执行以下操作:

代码语言:javascript
复制
$result = array_diff($databinArray, $databinPostArray);
票数 2
EN

Stack Overflow用户

发布于 2014-12-23 07:47:03

你需要推翻这些论点:

代码语言:javascript
复制
$result = array_diff($databinArray, $databinPostArray);

array_diff返回一个数组,其中包含第一个数组中没有在第二个数组中的所有内容。

如果您想获取任何一个数组中唯一的所有元素,可以使用:

代码语言:javascript
复制
$result = array_diff(array_unique(array_merge($databinArray, $databinPostArray)),
                     array_intersect($databinArray, $databinPostArray));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27615966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档