在PHP中将键转换/映射为数组中的值


Converting/Mapping Keys to Values in Array in PHP

我有以下数组

    $fieldValues = [
        'brand' => 'brand_id',
        'mobile' => 'mobile',
        'customer' => 'customer_id',
        'points_value' => 'points'
    ];

这是我的字段数组,它应该从键中获取值;

$fields = ['brand','points_value'];

所以,这里的输出应该是。

$fields = ['brand_id','points'];

我可以创建一个函数来将它们转换为值,但只是想检查是否有任何函数可以帮助我?我尝试了array_flicp代码,但运气不好。

我认为没有一个函数能做到这一点。然而,array_fliparray_intersect_key的组合可以做到这一点:

$result = array_values(array_intersect_key($fieldValues, array_flip($fields)));
print_r($result);

旁注:如果您想保留密钥,那么只需移除array_values即可。这只是将结果数组转换为数字索引。

或者只是简单的前臂就足够了:

$result = [];
foreach($fields as $key) {
    if(isset($fieldValues[$key])) {
        $result[] = $fieldValues[$key];
    }
}
print_r($result);