我正在研究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)
);
答案 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
)