если вы хотите, чтобы второй массив ($ b) был шаблоном, который указывает, что если там есть только ключ, то вы также можете попробовать это

ел бы объединить два массива друг с другом:

$filtered = array(1 => 'a', 3 => 'c');
$changed = array(2 => 'b*', 3 => 'c*');

Принимая во внимание, что объединение должно включать все элементы$filtered и все эти элементы$changed которые имеют соответствующий ключ в$filtered:

$merged = array(1 => 'a', 3 => 'c*');

array_merge($filtered, $changed) добавил бы дополнительные ключи$changed в$filtered также. Так что не очень подходит.

Я знаю, что я могу использовать$keys = array_intersect_key($filtered, $changed) получить ключи, которые существуют в обоих массивах, что уже составляет половину работы.

Однако мне интересно, есть ли какая-либо (нативная) функция, которая может уменьшить$changed массив в массив с$keys определяетсяarray_intersect_key? Я знаю, что могу использоватьarray_filter с функцией обратного вызова и проверить$keys в нем, но, вероятно, есть какая-то другая чисто нативная функция для извлечения только тех элементов из массива, ключи которого могут быть указаны?

Я спрашиваю, потому что родные функции часто намного быстрее, чемarray_filter с обратным вызовом.

Ответы на вопрос(2)

Ваш ответ на вопрос