从具有阵列的db列进行雄辩的收集到groupby映射并计数阵列

时间:2018-10-30 11:34:32

标签: php arrays collections count eloquent

你好,我已经搜索了所有Stack和雄辩的手册以及laravel和larcast,但是仍然缺少某些内容 我有这张表的数据库机智,所以 id并不重要 productid是唯一的 属性是一个值数组

id - productid  -   property  
------------------------------------------------------
1 - 2021        -  2657012,2657013,2657011
2 - 20          -  2657012,2657013
3 - 30          -  2657011
4 - 40          -  2657012
4 - 50          -  2657012

我如何将其收集到这样的收藏中?

   $data =collect([
   ['productid' => '2021','property' => ['2657011', '2657012','2657013']],
   ['productid' => '20','property' => ['2657012','2657013']],
   ['productid' => '30','property' => ['2657011']],
   ['productid' => '40','property' => ['2657012']],
   ['productid' => '50','property' => ['2657012']],
   ]);
  1. 我的代码按属性映射并按属性进行分组

    print_r($data->groupBy('property')->map(function($prodproperties) { return $prodproperties->count(); }));
    

结果是

 Illuminate\Support\Collection Object 
 ( 
     [items:protected] => Array
         (
             [2657011] => 2
             [2657012] => 4
             [2657013] => 2
         )

 )

如何通过针对每个属性值的productid数组的匹配列表获取此信息?像这样吗?

Illuminate\Support\Collection Object
  (
     [items:protected] => Array
         (
             [2657011] => 2, [productid] => 2021,30
             [2657012] => 4, [productid] => 2021,20,40,50
             [2657013] => 2, [productid] => 2021,20
         )

 )

0 个答案:

没有答案