如果两个数组的键值相等,比较最快的方法是什么?
例如。
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/