我正在开发php zend框架和sql server 2008中的一个网站。
我需要制作一个多维数组,按年格式按年份和月份存储数据:
Array(
[2012] => Array(
[11] => Array(
// data
)
[12] => Array(
// data
)
)
[2013] => Array(
[01] => Array(
// data
)
[02] => Array(
// data
)
[03] => Array(
// data
)
[04] => Array(
// data
)
)
)
但我在结果数组中得到重复。意味着我也在2013年获得2012年的数据。 我的代码如下:
// Database functions to get data
function select_cldata($month,$year)
{
global $db;
$select = "select ClientId,ClientName,Email,Request,'Order Placed' as info from tbl_clrequest where MONTH(CreatedDate) = ".$month." and YEAR(CreatedDate) = ".$year;
return $db->fetchAll($select);
}
function select_itemsdata($month,$year)
{
global $db;
$select = "select ItemId,ItemName,Desc,price,'Items delivered' as info1 from tbl_items where MONTH(ItemDate) = ".$month." and YEAR(ItemDate) = ".$year;
return $db->fetchAll($select);
}
// PHP Code
$test = new dbase();
$months = "2012-11,2012-12,2013-01,2013-02,2013-03,2013-04";
$mon_num = explode(",",$months);
$res = array();
$result = array();
foreach($mon_num as $mn)
{
$mm = explode("-",$mn);
$year = $mm[0];
$month = $mm[1];
$cl_data = $test->select_cldata($month,$year);
$dl_data = $test->select_itemsdata($month,$year);
$res[$month] = array_merge($clients,$sr,$events,$ses,$docs,$event_change,$devents);
$result[$year] = $res;
}
echo "<pre>";
print_r($result);die;
有人可以帮我吗?
答案 0 :(得分:0)
是我的工作示例的解决方案
foreach($mon_num as $mn)
{
$mm = explode("-",$mn);
$year = $mm[0];
$month = $mm[1];
$cl_data = $test->select_cldata($month,$year);
$dl_data = $test->select_itemsdata($month,$year);
$res = array_merge($clients,$sr,$events,$ses,$docs,$event_change,$devents);
$result[$year][$month] = $res;
}
我添加了一些虚拟数据来打印
<强>输出强>
Array
(
[2012] => Array
(
[11] => Array
(
[0] => 12
[1] => 1211
[2] => 112122
[3] => 121111
[4] => 67676
[5] => 545454
[6] => 666666
)
[12] => Array
(
[0] => 12
[1] => 1211
[2] => 112122
[3] => 121111
[4] => 67676
[5] => 545454
[6] => 666666
)
)
[2013] => Array
(
[01] => Array
(
[0] => 12
[1] => 1211
[2] => 112122
[3] => 121111
[4] => 67676
[5] => 545454
[6] => 666666
)
[02] => Array
(
[0] => 12
[1] => 1211
[2] => 112122
[3] => 121111
[4] => 67676
[5] => 545454
[6] => 666666
)
[03] => Array
(
[0] => 12
[1] => 1211
[2] => 112122
[3] => 121111
[4] => 67676
[5] => 545454
[6] => 666666
)
[04] => Array
(
[0] => 12
[1] => 1211
[2] => 112122
[3] => 121111
[4] => 67676
[5] => 545454
[6] => 666666
)
)
)
希望这一定能解决您的问题。