利用collect模块快速将数组转化成你想要的格式

很多网站的系统配置的数据库结构是下面这种格式的,然后取出数据的时候是这样的:[{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引用进来

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容