在不使用for循环的情况下基于另一个数组裁剪PHP数组


Cropping PHP array based on another array without using a for loop

给定:

$arr_in=array('a'=>1,'b'=>2,'c'=>3,'d'=>4);
$keep=array('a','c');

获得最简洁的方法是什么

$arr_out=array('a'=>1,'c'=>3);  //Keep only original elements who's index is in $keep

您可以使用array_flip()array_intersect_key():作为一个线性函数来实现这一点

$arr_out = array_intersect_key($arr_in, array_flip($keep));
print_r($arr_out);

收益率:

Array
(
    [a] => 1
    [c] => 3
)

尝试使用:

foreach($arr_in as $key => $val){
    if(in_array($keep, $key))
        $temp[$key] = $val;
}

您可能需要研究数组函数,如数组pop。