Função de matriz PHP que retorna um subconjunto para determinadas chaves

Eu estou procurando uma função de matriz que faz algo parecido com isto:

$myArray = array(
  'apple'=>'red',
  'banana'=>'yellow',
  'lettuce'=>'green',
  'strawberry'=>'red',
  'tomato'=>'red'
);
$keys = array(
  'lettuce',
  'tomato'
);

$ret = sub_array($myArray, $keys);

onde $ ret é:

array(
  'lettuce'=>'green',
  'tomato'=>'red'
);

A não tenho nenhum problema em escrevê-lo por mim mesmo, a coisa é que eu gostaria de evitar loop foreach e adotar uma função interna ou uma combinação de funções internas. Parece-me uma operação de matriz geral e comum - eu ficaria surpreso se um loop é a única opção.