使用PHP(和Laravel)使用数据创建高图表折线图


Creating highchart linechart with data using PHP (and Laravel)

我有一个数据集,看起来像:

month_name | intake_total | adoption_totals
January | 12 | 36
February | 4 | 12
March | 23 | 46
April | 45 | 89
May | 10 | 15
June | 15 | 20
July | 23 | 22
August | 23 | 45
September | 45 | 67
October  | 23 | 12
November | 45 | 100
December | 0 | 12

我正在尝试创建一个数组来显示折线图

我有:

$chartArray["chart"] = array("type" => "line");
$chartArray["title"] = array("text" => "Intakes vs. Adoptions");
$chartArray["credits"] = array("enabled" => false);
$chartArray["xAxis"] = array("categories" => array());
foreach ($results as $result)
{
$categoryArray[] = $result->month_name;
$chartArray["series"][] = array("name" => 'Intake Totals', "data" => array($result->intake_total));
$chartArray["series"][] = array("name" => 'Adoption Totals', "data" => array($result->adoption_total));
}
$chartArray["xAxis"] = array("categories" => $categoryArray);
$chartArray["yAxis"] = array("title" => array("text" => "Number of Pets"));
return $chartArray;

我知道我需要用每种类型的所有行填充每个系列的数据,但我不知道如何做到这一点。有什么想法吗?谢谢

想明白了。也许这会帮助其他人:

$chartArray["chart"] = array("type" => "line");
        $chartArray["title"] = array("text" => "Intakes vs. Adoptions");
        $chartArray["credits"] = array("enabled" => false);
        $chartArray["xAxis"] = array("categories" => array());
        foreach ($results as $result)
        {
            $categoryArray[] = $result->month_name;
        }
        $intaketotal = [];
        $adoptiontotal = [];
        foreach($results as $result){
            array_push($intaketotal, $result->intake_total);
            array_push($adoptiontotal, $result->adoption_total);
        }
        $chartArray["series"][] = array("name" => 'Intake Totals', "data" =>$intaketotal);
        $chartArray["series"][] = array("name" => 'Adoption Totals', "data" => $adoptiontotal);
        $chartArray["xAxis"] = array("categories" => $categoryArray);
        $chartArray["yAxis"] = array("title" => array("text" => "Number of Pets"));
        return $chartArray;