按键比较两个PHP数组

Ale*_*lex 5 php arrays comparison multidimensional-array

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

例如.

array1:          array2:

'abc' => 46,     'abc' => 46,
'def' => 134,    'def' => 134,
'xyz' => 34,     'xyz' => 34, 
Run Code Online (Sandbox Code Playgroud)

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

和:

array1:          array2:

'abc' => 46,     'abc' => 46,
'def' => 134,    'def' => 134,
'qwe' => 34,     'xyz' => 34, 
'xyz' => 34,    
Run Code Online (Sandbox Code Playgroud)

结果应为FALSE(某些键不同)

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

mea*_*gar 17

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

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

function keys_are_equal($array1, $array2) {
  return !array_diff_key($array1, $array2) && !array_diff_key($array2, $array1);
}
Run Code Online (Sandbox Code Playgroud)


Nav*_*eed 5

使用array_keys获取键数组,然后使用array_diff

或者

直接使用array_diff_key 。