如果key在另一个数组中,则从数组中删除键

时间:2011-03-24 18:20:02

标签: php arrays function multidimensional-array

我有两个数组

array1 (
    "akey1" => "dfksjhf"
    "akey2" => "adasjkgffs"
    "akey3" => "afkjhsafshfkah"
)

array2 (
    "akey2" => "could be anything..."
)

我正在寻找一个可以提供两个数组的PHP函数,并且会发生以下情况:

如果两个数组都有相同的密钥(无论数据如何),则从数组1中删除密钥并返回数组1的其余部分。

如果跑了将返回的函数:

array3 (
    "akey1" => "dfksjhf"
    "akey3" => "afkjhsafshfkah"
)

是否有PHP函数可以执行此操作,如果不是,那么在PHP中执行此函数的最快和最有效的方法是什么?

非常感谢

2 个答案:

答案 0 :(得分:12)

您正在寻找array_diff_key()

$array3 = array_diff_key($array1, $array2);

答案 1 :(得分:4)

array_diff_key应该适合你:

  

返回包含所有内容的数组   来自array1的条目,其键不是   存在于任何其他阵列中。

$new_array = array_diff_key($array_1, $array_2);