我有一些代碼,從MS SQL數據庫的多個表拉,整理數據,並輸出一個數組,然後我需要使用數組來填充工作表,告訴別人什麼項目需要每天進行。現在輸出如下所示,其中的字段是ID,名稱,日期,數字(由於某些名稱包含逗號,因此星號被刪除)。從多條線路的數據組合成一個單一的陣列
74*xxxx*2017-06-04*1
74*xxxx*2017-06-05*1
74*xxxx*2017-06-06*2
74*xxxx*2017-06-07*2
74*xxxx*2017-06-08*2
74*xxxx*2017-06-09*2
74*xxxx*2017-06-10*2
75*yyyy*2017-06-05*123
75*yyyy*2017-06-06*111
75*yyyy*2017-06-07*124
75*yyyy*2017-06-08*107
75*yyyy*2017-06-09*194
75*yyyy*2017-06-10*195
我試圖讓他們將它們合併到每個ID一個值,這樣我可以把它打印出來,以一個網格,類似於:
| ID | NAME | 06-04 | 06-05 | 06-06 | 06-07 | 06-08 | 06-09 | 06-10 |
| 74 | xxxx | 1 | 1 | 2 | 2 | 2 | 2 | 2 |
| 75 | yyyy | - | 123 | 111 | 124 | 107 | 194 | 195 |
我的意圖是要合併數組值與日期作爲密鑰的單一陣列中,我試圖在(最近)的代碼是:
$schedule[] = $PID . "*" . $program . "*" . $date . "*" . $num;
$grid = array();
foreach ($schedule as $item) {
$ex = explode('*', $item);
$grid[$ex[0]] = array(
'name' => $ex[1],
$ex[2] => $ex[3],
);
}
的意圖,這將它們合併成一個單一的陣列線的樣子:
[74] => Array ([name] => xxxx [2017-06-04] => 1 [2017-06-05] => 1 [2017-06-06] => 2 [2017-06-07] => 2 [2017-06-08] => 2 [2017-06-09] => 2 [2017-06-10] => 2)
之後我可以只用$ grid [$ i] [1]等線將它拉出來並打印到每個單元格。我嘗試了除上述以外的其他方法,這是目前我只有一個代碼片段的方法,我只能使用它來保留每個ID添加的最後一個值。
我敢肯定有一塊我失蹤或者根本不理解,如果有人可以提供一些輸入我們將不勝感激。
如果沒有人響應我會盡量放在一起使用http://php.net/manual/en/function.array-reduce一個例子。 PHP今晚。 – mkaatman