Удалить ключ из массива, если ключ находится в другом массиве - PullRequest
5 голосов
/ 24 марта 2011

У меня есть два массива

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

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

Я ищу функцию PHP, для которой я могу предоставить два массива, и произойдет следующее:

Если оба массива имеют идентичныеkey (независимо от данных), затем удалите ключ из массива 1 и верните остаток массива 1.

Функция в случае выполнения вернет:

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

Есть ли функция PHP, которая можетсделать это уже, и если нет, то какой самый быстрый и эффективный способ выполнения этой функции в PHP?

Большое спасибо

Ответы [ 2 ]

14 голосов
/ 24 марта 2011

Вы ищете array_diff_key():

$array3 = array_diff_key($array1, $array2);
4 голосов
/ 24 марта 2011

array_diff_key должно работать на вас:

Возвращает массив, содержащий все записи из массива1, чьи ключи не являются присутствует в любом другом массиве.

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