php - 检查两个数组是否仅包含相同的键

标签 php arrays multidimensional-array key comparison

如果两个数组的键值相等,比较最快的方法是什么?

例如。

array1:          array2:

'abc' => 46,     'abc' => 46,
'def' => 134,    'def' => 134,
'xyz' => 34,     'xyz' => 34, 

在这种情况下结果应该是 TRUE(相同的键)

和:

array1:          array2:

'abc' => 46,     'abc' => 46,
'def' => 134,    'def' => 134,
'qwe' => 34,     'xyz' => 34, 
'xyz' => 34,    

结果应该是 FALSE(有些键不同)

...array_diff_key() 返回一个空数组

最佳答案

使用array_diff_key ,这就是它的用途。如您所说,它返回一个空数组;这就是它应该做的。

给定 array_diff_key($array1, $array2),如果 array1 的所有键都存在于 array2 中,它将返回一个空数组。为确保数组相等,您需要确保 array2 的所有键都存在于 array1 中。如果任一调用返回一个非空数组,您就知道您的数组键不相等:

function keys_are_equal($array1, $array2) {
  return !array_diff_key($array1, $array2) && !array_diff_key($array2, $array1);
}

关于php - 检查两个数组是否仅包含相同的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6252679/

相关文章:

c - 指针子串数组

c - 动态地为可变大小的结构数组分配空间

arrays - 如何在 PowerShell 5.0 中初始化数组数组(多维)

php - 递归是否基本上到达 "stack"的底部然后反弹回来?

javascript - 拍卖类型倒计时

javascript - 将对象数组转换为对象的最佳方法?

c# - 复制 C# 多维数组元素的最有效方法是什么?

php - 使用 PHPExcel 保护 Excel 文件

php - 我正在尝试使用 PHP、mySQL 和 EXTjs 为吉他老师编写一个简单的 Web 应用程序

javascript - 借助数组的对象类别值拆分数组 - Javascript - High Chart