比如
$array = [
"version" => "1.1",
"connection" => "close",
];
变成
$array = [
"http_version" => "1.1",
"http_connection" => "close",
];
“简单”的方法是:
$arrayPrefix = [];
foreach ($array as $key => $value) {
$arrayPrefix['prefix_' . $key] = $value;
}
$array = $arrayPrefix;
有没有可能用 array_map 之类的函数实现?
8 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
大哥,代码不一定要追求函数用的6,你的算法已经非常简洁了.
<?php
$array = [
"version" => "1.1",
"connection" => "close",
];
array_map(function($item)use(&$array){
$array['http_'.$item] = $array[$item];
unset($array[$item]);
},array_keys($array));
print_r($array);exit;
12345678_0001
TA贡献1802条经验 获得超5个赞
<?php
$array = [
"version" => "1.1",
"connection" => "close",
];
$c=array_combine(array_map(function($v){return "http_".$v;},array_keys($array)),array_values($array));
print_r($c);
Array
(
[http_version] => 1.1
[http_connection] => close
)
largeQ
TA贡献2039条经验 获得超7个赞
<?php
header('content-type:text/html;charset=utf8');
$array = [
"version" => "1.1",
"connection" => "close",
];
foreach ($array as $key => $value)
{
$array["http_".$key] = $value;
unset($array[$key]);
}
var_dump($array);exit;
蓝山帝景
TA贡献1843条经验 获得超7个赞
用另一个数组接收
$array = [
"version" => "1.1",
"connection" => "close",
];
例 :$arr=[];
$arr["http_version"]=$array["version"];
$arr["http_connection"]=$array["connection"];
var_dump($arr);
$arr = [
"http_version" => "1.1",
"http_connection" => "close",
];
手掌心
TA贡献1942条经验 获得超3个赞
第一反应是键值翻转再array_map处理 仔细一想值相同会有问题
然后就通过array_combine组合
话说楼上array_map的用法以前确实没用过(大于2个参数)
$array = [
"version" => "1.1",
"connection" => "close",
];
$result = array_combine(array_map(function($key){
return "http_" . $key;
}, array_keys($array)), array_values($array));
print_r($result);
PS: 汗!!!
好吧楼上就是这样的想法... 不仔细看我还以为是array_map使用了三个参数还专门去看了下文档
PS: 再汗
原来是楼上更新了...
- 8 回答
- 0 关注
- 517 浏览
添加回答
举报
0/150
提交
取消