首页 > 解决方案 > 过滤集合的克隆会影响另一个克隆

问题描述

我正在尝试从一个系列中制作多个系列。我所做的是过滤和映射集合的克隆:

    $nutrients = $this->get_records_daily_average($request);


     // Make & filter first copy
     $Vitamins = clone $nutrients;
     $Vitamins = $Vitamins->filter(function($nutrient)
     {
           return in_array($nutrient->id,config(("hooman.nutrient_ids.score_related.Vitamins")));
     })->map(function($nutrient){
        $nutrient->score_category= "Vitamins";
        return $nutrient;
    })->values();


    //Make & Filter Another copy
     $immune_support = clone $nutrients;
     $immune_support = $immune_support->filter(function($nutrient)
     {
           return in_array($nutrient->id,config("hooman.nutrient_ids.score_related.Immune Support") );
     })->map(function($nutrient){
        $nutrient->score_category= "immune_support";
        return $nutrient;
    })->values();


    return $Vitamins;  //Test
    // filtering other clones ...

问题是某些 $Vitamins 的 score_category 为“immune_support”,这告诉我第二个过滤器会影响前一个过滤器,而这两个克隆的集合之间没有关系。

提前致谢

标签: laravelcollections

解决方案


推荐阅读