0

私は、php zend フレームワークと sql server 2008 で 1 つの Web サイトを開発しています。

この形式で年と月ごとにデータを格納する 1 つの多次元配列を作成する必要があります。

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;

誰でも私を助けてくれますか?

4

1 に答える 1

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
                )

        )

)

これで問題が解決することを願っています。

于 2013-09-11T09:08:06.113 に答える