Php 如何求两个数组的差
所以我有两个数组,当我进行var_转储时,它们看起来像这样:Php 如何求两个数组的差,php,arrays,Php,Arrays,所以我有两个数组,当我进行var_转储时,它们看起来像这样: array(4) { ["DatabinFieldName_1"]=> string(7) "Heading" ["DatabinFieldType_1"]=> string(13) "VARCHAR (255)" ["DatabinFieldName_3"]=> string(11) "DateCreated" ["DatabinFieldType_3"]=> stri
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"
}
我需要得到不同的结果。我试过用这个代码
// 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()
,这意味着即使存在差异,也找不到任何差异。您需要反转参数:
$result = array_diff($databinArray, $databinPostArray);
array\u diff
返回一个数组,其中包含第一个数组中不在第二个数组中的所有内容
如果要获取任一阵列唯一的所有元素,可以使用:
$result = array_diff(array_unique(array_merge($databinArray, $databinPostArray)),
array_intersect($databinArray, $databinPostArray));
array_diff()
返回第二个数组中不在第一个数组中的元素。因此,您的问题的答案是:
$result = array_diff($databinPostArray, $databinArray);
if (couunt($result) == 0) {
$result = array_diff($databinArray, $databinPostArray);
}
这样,无论$databinostarray
或$databinArray
中是否有更多键,都会返回差异
如果您只想检查哪些元素在$databinArray
中,而不在$databinPostArray
中,请执行以下操作:
$result = array_diff($databinArray, $databinPostArray);
你试过数组_diff()吗;问题是你们做错了事情
Array_diff
查找Array_1
中不存在的所有元素。根据您的var\u dump
,$databinPostArray
的所有元素都存在于$databinArray
中,因此没有区别。空数组不是假的。