与array_filter相反,以保持某些值并保留键

abe*_*ier 1 php arrays

我有一个数组,按键索引,例如:

array(
    'key1' => 'value1',
    'key2' => 'value2',
    ...
    'key57' => 'value57'
)
Run Code Online (Sandbox Code Playgroud)

如何"过滤"该数组,以便只有,例如:

array(
    'key2' => 'value2',
    'key57' => 'value57'
)
Run Code Online (Sandbox Code Playgroud)

并保存钥匙.

我知道array_filter()函数,但我不想EXCLUDE除2和57之外的所有项目,不,我只想保留这些值.

是否存在我们可以命名为array_keep()的PHP核心函数?

谢谢.

Tom*_*igh 5

如果您确切地知道要保留哪些键,则可以轻松编写一个函数来执行此操作:

<?php 
function array_keep($array, $keys) {
    return array_intersect_key($array, array_fill_keys($keys, null));
}

$array = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key57' => 'value57'
);

$newArray = array_keep($array, array('key2', 'key57'));

print_r($newArray);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [key2] => value2
    [key57] => value57
)
Run Code Online (Sandbox Code Playgroud)