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

时间:2015-04-03 10:48:07

标签: php arrays

我有以下数组

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

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

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

所以,输出应该是。

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

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

1 个答案:

答案 0 :(得分:1)

我认为没有一个功能可以做到这一点。但是,array_fliparray_intersect_key的组合可以做到:

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

旁注:如果您希望保留密钥,则只需删除array_values即可。这只会将结果数组转换为数字索引。

或者只是简单的' foreach也应该足够了:

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