Intersección de dos diccionarios

Escribe una función que reciba dos arreglos asociativos diferentes. En cada uno, conserva únicamente las claves que existan en ambas entradas, manteniendo los valores originales de esa entrada. Devuelve los dos arreglos asociativos filtrados en el mismo orden que los argumentos.

Ejemplos

intersect_maps(['a' => 5, 'b' => 13, 'c' => 7], ['b' => 5, 'c' => 8, 'd' => 91, 'e' => 99]); // [['b' => 13, 'c' => 7], ['b' => 5, 'c' => 8]]

intersect_maps(['a' => 5, 'b' => 13, 'c' => 7], ['c' => 9, 'd' => 8]); // [['c' => 7], ['c' => 9]]

intersect_maps(['a' => 1, 'b' => 34], ['c' => 9, 'd' => 8]); // [[], []]

Notas

Si no hay claves en común, devuelve dos arreglos asociativos vacíos.