首页> 实战笔录 >PHP开发笔记 >Laravel Laravel

$collection->transform()方法会遍历整个集合能结合use方法联合使用

作者:小萝卜 2024-08-16 浏览 456

简介$collection->transform()方法会遍历整个集合,并对集合中的每个元素都会调用其回调函数。集合中的元素将被替换为回调函数返回的值

$collection->transform()方法会遍历整个集合,并对集合中的每个元素都会调用其回调函数。集合中的元素将被替换为回调函数返回的值:

$collection = collect([1, 2, 3, 4, 5]);

$collection->transform(function ($item, $key) {
    return $item * 2;
});

$collection->all();

// [2, 4, 6, 8, 10]

注意:与大多数集合方法不同,transform 会修改集合本身。如果你想创建新集合,可以使用 map 方法。

结合use( )使用:

//遍历原始数据并赋值
$pageData['items'] =  collect($pageData['items'])->transform(function($v,$k)use($examine_data_key,$params,$company_data){

    //构造审核人信息
    if(!$v['examine_by']){
        $examine_username = null;
        $examine_nickname = null;
    }elseif($params['showExamine']==1){
        if($v->type == 1){
           $examine_username = '平台';
           $examine_nickname = '系统审核';
        }else{
           $examine_username = $examine_data_key->get($v->examine_by)['username'];
           $examine_nickname = $examine_data_key->get($v->examine_by)['nickname'];
        }

     }else{
         $examine_username = $examine_data_key->get($v->examine_by)['username'];
         $examine_nickname = $examine_data_key->get($v->examine_by)['nickname'];
     }
     $v->examine_username = $examine_username;
     $v->examine_nickname = $examine_nickname;

     //构造申请的公司信息
     $v->company_name = $company_data->get($v->company_id)->name;

     return $v;

})->toArray();

 

很赞哦! (0)

文章评论

    高端网站建设