Laravel collect妙用
需求
$arr = array(
[
'name' => "shawn",
"email" => "shawn@qq.com",
"company" => "QQ"
],
[
'name' => "nicole",
"email" => "nicole@360.com",
"company" => "360"
],
[
'name' => "test",
"email" => "test@baidu.com",
"company" => "baidu"
]
);
//转化成
$lookup = array(
"shawn" => "shawn@qq.com",
"nicole" => "nicole@360.com",
"test" =>"test@baidu.com"
);
方法一:
$lookup = collect($arr)->pluck("email","name")->toarray();
方法二:
$lookup = collect($arr)->reduce(function($lookup,$item){
$lookup[$item["name"]] = $item["email"];
return $lookup;
},[]);
//reduce方法调用的是 array_reduce()方法
//array_reduce($arr,callback,initial);