我想以这种格式生成一个数组[x,x,x],其中每个x按每个零售ID的加法进行分组,但是,对于一个空数组列表,我希望有[x,x,0假设第三个数组为空,而不是[x,x]
以下是我的代码
<?php
$q = "SELECT DISTINCT outletid FROM " . TBL_SALES_LOGS;
$result = $database->query($q);
$outlets = [];
?>
data: [<?php
while ($row = $result->fetch_assoc()) {
// $outletname = $row['title'];
$outlet_id = $row['outletid'];
$outlets[] = $row['outletid'];
$amount = $row['amount'];
?>
<?php echo $outlet_id; ?>,
<?php } ?> ]
data: [<?php
$outlet = implode("','", $outlets);
$qsum3 = "SELECT outletid, SUM(amount) AS totalsum FROM " . TBL_SALES_LOGS . " WHERE outletid IN ('{$outlet}') and fueltype='PMS' group by `outletid`";
$qresult3 = $database->query($qsum3);
while ($rowq3 = $qresult3->fetch_assoc()) {
$tot3 = $rowq3['totalsum'];
?>'<?php echo $tot3; ?>',<?php } ?>]
而不是[3,4,2,3]和缺失值没有显示,我希望[3,4,2,0,3]为缺失值,假设0是缺失值
感谢
答案 0 :(得分:0)
我做了一些改变。主要创建一个键值数组,取决于id作为键,并将所有这些值设置为sum =&gt;然后,当你遍历所有的id及其总和时,它会改变它找到的id的总和。
未经测试,但应该解决。您可能需要更改结束。所有打开和关闭的php标签都很混乱。
<?php
$q = "SELECT DISTINCT outletid FROM " . TBL_SALES_LOGS;
$result = $database->query($q);
$outlets = [];
$outletsIdSum = [];
?>
data: [<?php
while ($row = $result->fetch_assoc()) {
// $outletname = $row['title'];
$outlet_id = $row['outletid'];
$outlets[] = $outlet_id;
$outletsIdSum[(int)$outlet_id] = 0;
$amount = $row['amount'];
?>
<?php echo $outlet_id; ?>,
<?php } ?> ]
data: [<?php
$outlet = implode("','", $outlets);
$qsum3 = "SELECT outletid, SUM(amount) AS totalsum FROM " . TBL_SALES_LOGS . " WHERE outletid IN ('{$outlet}') and fueltype='PMS' group by `outletid`";
$qresult3 = $database->query($qsum3);
while ($rowq3 = $qresult3->fetch_assoc()) {
$outletsIdSum[(int)$rowq3['outletid']] = $rowq3['totalsum'];
}
echo "'" . implode( "','", $outletsIdSum );
?>]
答案 1 :(得分:-1)
在数组上添加if条件
<?php
foreach(some_array as a)
{
if(a=="" or a==NULL)
a=0;
}
?>
这将检查数组元素是否为空,然后,如果它为空,则将数组元素分配给'0'
使用此算法