在laravel9框架中pluck()、keyBy()返回一维、二维数组示例

2023-06-01 00:00:00 示例 框架 数组

在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,或者循环等等这就不过多介绍。

相关文章