从密钥列表中获取数组中存在的可用值

use*_*300 1 php arrays

我有这个数组:

$array = array('a' => 'value of a', 'b' => 'value of b', 'c' => 'value of c',
    'd' => 'value of d');
Run Code Online (Sandbox Code Playgroud)

这个项目清单:

$items = array ('a' => 'value','b'=> 'value','c'=> 'value','d'=> 'value');
Run Code Online (Sandbox Code Playgroud)

我想检查$ items中是否存在$ items的至少一个键,如果是,则返回一个包含one/availableones及其值的数组.

这是我到目前为止所尝试的,但是无法做到正确:

if (array_key_exists('a', $array) || array_key_exists('b', $array)
    || array_key_exists('c', $array) || array_key_exists('d', $array)) { 
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

感谢名单

lso*_*uza 7

你需要的是两个数组之间的键的交集.有一个很好的功能叫做array_intersect_key()

http://php.net/manual/en/function.array-intersect-key.php

$array = array('a' => 'value of a', 'b' => 'value of b', 'c' => 'value of c', 'd' => 'value of d');
$items = array ('a' => 'value','b'=> 'value','c'=> 'value','d'=> 'value');

print_r(array_intersect_key($array, $items));
Run Code Online (Sandbox Code Playgroud)