在PHP中重命名键的方法比数组_组合更好吗?

在PHP中重命名键的方法比数组_组合更好吗?,php,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

我正在研究以下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)
);


array\u combine
不是必需的。简单一点就足够了

$old=array(
“a”=>1,
“b”=>2
);
$new=array();
foreach($key=>$value){
$new['prefix...$key]=$value;
}
var_dump(新);
输出:

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

编辑
您的问题已经得到了回答,包括不同方法的基准测试

您只需使用$key和$value循环即可

$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;

在发布问题之前你试过什么吗?如果是,请发布您的代码和结果。如果没有,你应该先尝试一下,这是不可能的。重命名方式-添加新密钥,删除以前的密钥。这些功能都不能做到这一点
array\u map
甚至不适用于键。正在修补并添加了一个工作示例。使用array\u combine,它相当紧凑,但只是好奇是否存在array\u map\u键。这里最紧凑的方式是一种很好的旧
foreach
。这是foreach循环,而不是for循环:-)
$a:
Array
(
    [a] => 1
    [b] => 2
)
$b :
Array
(
    [prefix.a] => 1
    [prefix.b] => 2
)