如何从两个数组的交叉处获取它们的键?

max*_*cat -1 php arrays

我有两个数组作为示例:

$array1 = ['ASD', 'Ep', 'Com'];
$array2 = [1=>'ASD', 2=>'bob', 3=>'Ep', 4=>'Jam', 5=>'Com'];
Run Code Online (Sandbox Code Playgroud)

我想拉出$array2我有价值的钥匙$array1.

所以在这种情况下,预期的输出将是:

array(1, 3, 5)
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Roc*_*mat 5

你应该可以使用array_intersect它.

$array1 = ['ASD', 'Ep', 'Com'];
$array2 = [1=>'ASD', 2=>'bob', 3=>'Ep', 4=>'Jam', 5=>'Com'];

$keys = array_keys(array_intersect($array2, $array1));
Run Code Online (Sandbox Code Playgroud)

演示:http://codepad.org/GyIrdQpE