如何将相同的日期和计数组合在一起

时间:2018-03-23 06:22:24

标签: php arrays laravel

我已经完成了一个代码,可以根据每个日期调用一个值数组。我的代码如下:

$matchs = DiraChatLog::where('status','=','Match')->whereBetween('date_access', [$request->from, $request->to])->get();
$array[] = [];
foreach ($matchs as $key => $match) {
    $array[$match->date_access] = $match->status;
}

dd($array);

使用这个我试试dd();我得到这样的输出: enter image description here

我现在要做的是首先将相同的日期组合在一起,然后我想计算那些日期的总数。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

不确定你的意思" date"。但如果你的意思是同一天,那就是:

$matchs = DiraChatLog::where('status','=','Match')->whereBetween('date_access', [$request->from, $request->to])->get();
$array[] = [];
foreach ($matchs as $key => $match) {
 $day = substr($match->date_access, 0, 10);
 if(isset($array[$day])){
  $array[$day]++;
 }else{
  $array[$day] = 1;
 }
}

dd($array);

答案 1 :(得分:0)

   $array= array();
   $arrayCount=array();
   foreach ($matchs as $key => $match) { 
       $time = strtotime($match->date_access); 
       $newformat = date('Y-m-d',$time);
       if(!array_key_exists($newformat , $array)){ 
                 $i=1;
            $array[$newformat]=$match->status; 
       }     

            //$array[$newformat]=$i;   remove this comment if you want the count inside
            $arrayCount[$newformat]=$i;
            $i++;
     }

如果您希望在数组中保持“匹配”值,而不仅仅是取消注释代码和卸载$ arrayCount事件