【发布时间】:2022-07-06 01:31:58
【问题描述】:
我有一个搜索合同上提供的“住宿”和“餐饮”服务的请求。此查询每年进行总和。一切正常!检索到的数据存储在一个数组中,然后发送到可以计算和显示动态图的 Javascript... 问题是有些年份没有“Restores”,所以While Loop无法将信息添加到不存在的Array中,所以图表不起作用,数据的colums移位!
while ($data = $requete1->fetch()) {
// Hébergement :
if($data['P_TYPE']=="HEBERGEMENT"){
$hebergement[] = array("label"=> $data['ANNEE'], "y"=> $data['ca_total']);
}
// Restauration :
if($data['P_TYPE']=="RESTAURATION"){
$restauration[] = array("label"=> $data['ANNEE'], "y"=> $data['ca_total']);
}
}
我需要这样的结果,当服务不存在时添加 0 值:
// Hébergement années non comprises en bdd :
$hebergement[] = array("label"=> "2021", "y"=> 68279);
$hebergement[] = array("label"=> "2020", "y"=> 30457);
$hebergement[] = array("label"=> "2019", "y"=> 0);
$hebergement[] = array("label"=> "2018", "y"=> 57993);
$hebergement[] = array("label"=> "2017", "y"=> 49702);
$hebergement[] = array("label"=> "2016", "y"=> 45493);
$hebergement[] = array("label"=> "2015", "y"=> 38460);
// Restauration années non comprises en bdd :
$restauration[] = array("label"=> "2021", "y"=> 12117);
$restauration[] = array("label"=> "2020", "y"=> 697);
$restauration[] = array("label"=> "2019", "y"=> 2687);
$restauration[] = array("label"=> "2018", "y"=> 0);
$restauration[] = array("label"=> "2017", "y"=> 40);
$restauration[] = array("label"=> "2016", "y"=> 350);
$restauration[] = array("label"=> "2015", "y"=> 200);*/
提前感谢您的帮助!
【问题讨论】:
-
在循环中,保留一个包含上一年值的变量(即最后处理的行中的年份)。然后检查当前年份的值...如果差距大于 1,请根据您的预期输出将一个虚拟条目插入到数组中,其中包含 0 值。
-
你也可以用SQL来做:见stackoverflow.com/questions/75752/…
-
只需使用三元运算符,如
"y"=> $data['ca_total'] ?: 0 -
非常感谢您提供这些指示...我完全理解您的意思,但我不知道如何实施!
标签: php arrays loops while-loop