我有一个数组:
$array = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
'key4' => 'value4',
'key5' => 'value5',
);
Run Code Online (Sandbox Code Playgroud)
我想用指定的键获取它的一部分 - 例如key2, key4, key5
.
预期结果:
$result = array(
'key2' => 'value2',
'key4' => 'value4',
'key5' => 'value5',
);
Run Code Online (Sandbox Code Playgroud)
最快的方法是什么?
Iva*_*uev 16
你需要的array_intersect_key
功能:
$result = array_intersect_key($array, array('key2'=>1, 'key4'=>1, 'key5'=>1));
Run Code Online (Sandbox Code Playgroud)
array_flip
如果您的键在数组中作为值,也可以提供帮助:
$result = array_intersect_key(
$array,
array_flip(array('key2', 'key4', 'key5'))
);
Run Code Online (Sandbox Code Playgroud)
您可以使用array_intersect_key
和array_fill_keys
执行此操作:
$keys = array('key2', 'key4', 'key5');
$result = array_intersect_key($array, array_fill_keys($keys, null));
Run Code Online (Sandbox Code Playgroud)
array_flip
而不是也array_fill_keys
将工作:
$keys = array('key2', 'key4', 'key5');
$result = array_intersect_key($array, array_flip($keys));
Run Code Online (Sandbox Code Playgroud)