在laravel9框架中pluck()、keyBy()返回一维、二维数组示例
在laravel框架中pluck()访问的是里面的字段对应的一维数组,那么如果我想返回对应的字段的二维数组呢?
我们可以用get([])->keyBy()这两个方法实现
先看看pluck()返回的一维数组
举例:
use App\Models\User;
...
$user = User::where('status',1)->pluck('name','id');
//结果
['1'=>'nameA','2'=>'nameB' ,'3'=>'nameC']
想实现类似二维数组呢?
比如一下格式:
[
'1'=>['name'=>'nameA' ,'tel'=>'telA'],
'2'=>['name'=>'nameB' ,'tel'=>'telB']
]
看下面示例:
$user = User::where('status', 1)->get(['name', 'tel'])->keyBy('id');
结果:
[
'1'=>['name'=>'nameA' ,'tel'=>'telA'],
'2'=>['name'=>'nameB' ,'tel'=>'telB']
]
这样就优雅的实现了pluck类似的二维数组格式了。
当然了也可以使用集合mapWithKeys,或者循环等等这就不过多介绍。
相关文章