很多网站的系统配置的数据库结构是下面这种格式的,然后取出数据的时候是这样的:[{key: "APPID", value: "APPID"}, {key: "AppSecret", value: "AppSecret"}]
,这样给并不能友好的给前台,我们需要将他转化成{APPID: "APPID", AppSecret: "AppSecret"}
常规方法
$data = json_decode('[{"key": "APPID", "value": "APPID"}, {"key": "AppSecret", "value": "AppSecret"}]');
$newData = array();
foreach($data as $v){
foreach($v as $key=>$value){
$newData[$key] = $value;
}
}
echo json_encode($newData);
collect方法
$data = json_decode('[{"key": "APPID", "value": "APPID"}, {"key": "AppSecret", "value": "AppSecret"}]');
$newData = collect($data)->map(function ($item){
return collect($item)->pluck('value','key');
});
echo json_encode($newData);
利用collect省去了多层的循环,代码看起来更加优雅
使用collect如果不是在laravel项目请先熟知如何将collect引用进来