为了账号安全,请及时绑定邮箱和手机立即绑定

排序数组和比较数组值php

排序数组和比较数组值php

PHP
幕布斯6054654 2023-03-04 10:58:46
大家好,我正在使用 ChartJs 和 Laravel 在图表上绘制数据,我需要根据月份绘制数据,我希望即使没有数据也能在图表上显示整个 12 个月,我有几个月的数组 ['January', 'February'....然后我在这里有我的数据:     $stats = DB::table('wallet_payouts')        ->groupBy('date')        ->orderBy('date', 'ASC')        ->get([            DB::raw('DATE_FORMAT(created_at, "%M") as date'),            DB::raw('COUNT(*) as value')        ]);    $labels = [];    $data = [];    foreach ($months as $month){        foreach ($stats as $stat){            if ($month == $stat->date){                array_push($labels, $stat->date);                array_push($data, $stat->value);            }else{                array_push($labels, $month);                array_push($data, 0);            }        }    }但问题不是循环后 12 个月,我得到 24...重复,数据也在 24...我希望月份与没有重复的数据匹配
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

试试下面的代码:


$stats = DB::table('wallet_payouts')

        ->groupBy('date')

        ->orderBy('date', 'ASC')

        ->get([

            DB::raw('DATE_FORMAT(created_at, "%M") as date'),

            DB::raw('COUNT(*) as value')

        ]);


$labels = $months;

$data = [];

$temp = [];

foreach ($stats as $stat){

    $temp[$stat->date] = $stat->value;

}

foreach($months as $month){

    if(array_key_exists($month,$temp)){

        array_push($data, $temp[$month]);

    } else {

        array_push($data, 0);

    }

}


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信