比array_combine重命名PHP中的键的更好方法?

时间:2019-04-08 09:45:59

标签: php

我正在研究array_combine和array_map的以下组合-理想情况下,我希望使用诸如array_map_keys之类的东西来映射函数以重命名键。一个例子:

$input = array(
    'a'=>1
    'b'=>2
);
$desired_output = array(
    'prefix.a'=>1
    'prefix.b'=>2
);

function rename_keys($input) {
array_combine(
    array_map(
        function($col) {
            return 'prefix.'.$col;
        },
        array_keys($input)
    ),
    array_values($input)
);

2 个答案:

答案 0 :(得分:1)

array_combine是不必要的。一个简单的foreach就足够了。

    $old = array(
        'a'=>1,
        'b'=>2
    );

    $new = array();

    foreach ($old as $key => $value) {
        $new['prefix.' . $key] = $value;
    }

    var_dump($new);

输出:

array(2) {
  ["prefix.a"]=>
  int(1)
  ["prefix.b"]=>
  int(2)
}

修改here已回答了您的问题,其中包括不同方法的基准测试

答案 1 :(得分:0)

您只需要使用$ key和$ value进行for循环

$a = array('a'=>1,'b'=>2);
echo'<pre>';print_r($a);
$b=array();
foreach($a as $key => $value){
    $b['prefix.'.$key] = $value;
}
echo'<pre>';print_r($b);die;

输出:

$a:
Array
(
    [a] => 1
    [b] => 2
)
$b :
Array
(
    [prefix.a] => 1
    [prefix.b] => 2
)