Как сделать PHP массив_intersect по ключам, а не по значениям?

$master = ['111' => 'foo', '124' => 'bar', '133' => 'baz'];

$check = ['111' => 14, '133' => 23 ]';

Я хочу удалить все ключи из $master что не существует в $check,
Таким образом, результат в этом примере должен быть:

$newMaster = ['111' => 'foo', '133' => 'baz'];

Есть идеи как это сделать ? Заранее спасибо.

4

Решение

Да просто пользуйся array_intersect_key()

$newMaster = array_intersect_key($master, $check);
2

Другие решения

Да, вы можете просто использовать:

var_dump(array_intersect_key($master, $check));
0

$master = ['111' => 'foo', '124' => 'bar', '133' => 'baz'];

$check = ['111' => 14, '133' => 23 ];$intersectArray = array_intersect_key($master, $check);

Здесь ключ будет сравнивать используя array_intersect_key() Функция будет сравнивать ваш ключ $ check в $ master и даст вам результат, где ключ $ check совпадает с $ master, и вы получите вывод ['111' => 'foo', '133' => 'baz']; в $intersectArray

Для более подробной информации вы проверите эту ссылку http://php.net/manual/en/function.array-intersect-key.php

0