【发布时间】:2014-07-23 19:13:56
【问题描述】:
我需要为 highchart 导出一组 json 数据。但我在循环时遇到问题。 我有 2 组数组:
- 年份数组 (2015,2014,2013,2012) - 形成 MySQL
- 月份数组 (01,02,03,04,05,06,07,08,09,10,11,12)
所以我把它做成数组 - 多维的。使用此代码。
$sql_arrYr=mysqli_query($con,"select year(bk_date1) as arrYr from booking_db group by year(bk_date1) order by arrYr asc");
while($rec_arrYr=mysqli_fetch_array($sql_arrYr)){
$arrYr[$rec_arrYr['arrYr']]=array("01","02","03","04","05","06","07","08","09","10","11","12");
}
那么我有:
Array ( [2015] => Array ( [0] => 01 [1] => 02 [2] => 03 [3] => 04 [4] => 05 [5] => 06 [6] => 07 [7] => 08 [8] => 09 [9] => 10 [10] => 11 [11] => 12 )...);
这看起来不错,因为我在一组数组中包含了我需要的所有数据 - 年份和每个月的值。
所以我继续使用这段代码从 mySQL 中获取数据。
foreach($arrYr as $key=>$val){
$rows=array();
$rows[type]='spline';
$rows[name]=$key;
foreach($val as $mon){
$sql_nBk=mysqli_query($con,"select count(*) as nBkr from booking_db where year(bk_date1)='$key' and month(bk_date1)='$mon'");
$rec_nBk=mysqli_fetch_array($sql_nBk);
$rows[data][]=$rec_nBk['nBkr'];
}
}
echo json_encode($rows);
问题发生在这里。这不是循环。我唯一的行是。
{"type":"spline","name":2015,"data":["9","8","0","0","0","0","0","0","0","0","0","0"]}
这是我的期望:
{"type":"spline","name":2015,"data":["9","8","0","0","0","0","0","0","0","0","0","0"]}
{"type":"spline","name":2014,"data":["9","8","0","0","0","0","0","0","0","0","0","0"]}
{"type":"spline","name":2013,"data":["9","8","0","0","0","0","0","0","0","0","0","0"]}
{"type":"spline","name":2012,"data":["9","8","0","0","0","0","0","0","0","0","0","0"]}
请给我一个为什么它不是循环的原因。即使我把它们放在一个正确的循环中。
【问题讨论】:
-
您在循环的每次迭代中将
$rows重置为一个空数组... -
我不明白。请具体。
-
尝试在逻辑上遵循自己的代码,尤其是循环的最后一次迭代。
-
请给我一个线索。我应该在第二个循环中使用
foreach还是其他什么?
标签: php mysql arrays json foreach