在PHP中重命名键的方法比数组_组合更好吗?
我正在研究以下array_combine和array_map的组合-理想情况下,我希望更像array_map_keys的组合来映射函数以重命名键。例如:在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
$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
)