数组在数组中的键上相交?

Hai*_*ood 16 php arrays

我有一个国家的阵列:

array(
'AF'=>'AFGHANISTAN',
'AL'=>'ALBANIA',
'DZ'=>'ALGERIA',
'AS'=>'AMERICAN SAMOA',
);
Run Code Online (Sandbox Code Playgroud)

我有另一个数组,其中包含一些键

array('AL', 'DZ');
Run Code Online (Sandbox Code Playgroud)

我想调用一个函数,它将两个数组作为参数并返回

array(
'AL'=>'ALBANIA',
'DZ'=>'ALGERIA',
);
Run Code Online (Sandbox Code Playgroud)

我知道php内置了比较键或值的函数,但似乎这些函数都希望你有两个1D数组或两个2D数组.

我可以array_keys()为第一个数组循环in_array()并对每个键进行检查,但这看起来真的很无效......

dec*_*eze 42

$selection = array('AL', 'DZ');
$filtered = array_intersect_key($countries, array_flip($selection));
var_dump($filtered);
Run Code Online (Sandbox Code Playgroud)

  • @ JM4是的,做一个`diff`而不是`intersect`. (2认同)