【问题标题】:PHP Create array with placeholdersPHP使用占位符创建数组
【发布时间】:2014-06-02 22:31:44
【问题描述】:

我正在使用从我的存储过程中检索到的数据在 php 中创建一个数组:

            <root>
              <dataSet>
                <reimbursementMonth>6</reimbursementMonth>
                <reimbursementYear>2014</reimbursementYear>
                <grandTotal>1774</grandTotal>
                <totalBooks>1288</totalBooks>
                <tuitionTotal>486</tuitionTotal>
              </dataSet>
              <dataSet>
                <reimbursementMonth>7</reimbursementMonth>
                <reimbursementYear>2014</reimbursementYear>
                <grandTotal>1488</grandTotal>
                <totalBooks>842</totalBooks>
                <tuitionTotal>986</tuitionTotal>
              </dataSet>
              <dataSet>
                <reimbursementMonth>8</reimbursementMonth>
                <reimbursementYear>2014</reimbursementYear>
                <grandTotal>253</grandTotal>
                <totalBooks>143</totalBooks>
                <tuitionTotal>110</tuitionTotal>
              </dataSet>

此数据显示一年中各月份的总数。即使没有数据,我也需要为全年(所有 12 个月)创建一个数组。

我正在使用一个图表插件,它获取一组数据并相应地显示它。

//DB pull data
$objDB = new DB;
$info = $objDB->setStoredProc('tuitionFetchStats')
     -> setParam("action", 'y2d')        
     -> execStoredProc()
     -> parseXML();  

$books = array(); 
$tuition = array(); 
$grandTotal = array(); 

foreach($info->dataSet as $data){

    $books[] = $data->totalBooks;
    $tuition[] = $data->tuitionTotal;
    $grandTotal[] = $data->grandTotal;

}

上面的代码是我获取数据的方式,但如您所见,我的数组将从月份开始,但我使用的插件从一月份开始。在这种情况下,列将全部关闭。

我需要以一种方式创建数组,如果缺少第 1 个月,则数组中的第一个值只是空的,但它作为 1 月份的占位符存在。

最好的方法是什么?

你可以看到这个demo和我的JS Fiddle类似

我遇到问题的部分是该系列中包含的数据。有些月份现在没有数据,但我仍然需要这些数据来匹配确实存在的数据。

【问题讨论】:

标签: javascript php jquery arrays highcharts


【解决方案1】:

检查当前使用的月份是第一个还是上一个之后的下一个,并在需要时填写(以及最后)

$last = 0;
foreach($info->dataSet as $data){
    $month = $data->reimbursementMonth;
    while ($month > ($last+1)) {
        $books[] = 0;
        $tuition[] = 0;
        $grandTotal[] = 0;
        $last++;
    }

    $books[] = $data->totalBooks;
    $tuition[] = $data->tuitionTotal;
    $grandTotal[] = $data->grandTotal;
    $last = $month;

}
while ($last < 12) {
    $books[] = 0;
    $tuition[] = 0;
    $grandTotal[] = 0;
    $last++;
}

【讨论】:

    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2016-10-03
    • 1970-01-01
    • 2019-12-21
    相关资源
    最近更新 更多