我正在重構日曆應用程序。該日曆具有用戶定義的網格(可以預訂的插槽),但也需要顯示「非網格」預訂。 08:00-09:00時可以考慮「常規」時段,08:39時有人預訂時會出現「不規則」時段。出於商業原因,我需要以不同的方式顯示這些插槽(CSS),否則它們的表現會相同。我已經搜索了PHP手冊,但內置的數組函數並不完全符合我的需要。將二維數組合併到組中
$officialGrid = array(
array('grid' => TRUE, 'time' => '08:00', 'content' => NULL),
array('grid' => TRUE, 'time' => '09:00', 'content' => NULL));
$bookings = array(
array('grid' => NULL, 'time' => '08:00', 'content' => 'Paul Simon'),
array('grid' => NULL, 'time' => '08:00', 'content' => 'Art Garfunkel'),
array('grid' => NULL, 'time' => '08:39', 'content' => 'Homer J. Simpson'));
我可以追加這些陣列,但由於性能原因想縮短結果:我也很靈活改變數據類型的值(content
可能是一個數組
$timeSlotsToDisplay = array(
array('grid' => TRUE, 'time' => '08:00', 'content' => 'Paul Simon, Art Garfunkel'), //regular
array('grid' => NULL, 'time' => '08:39', 'content' => 'Homer J. Simpson'), //irregular
array('grid' => TRUE, 'time' => '09:00', 'content' => NULL)); //vacant
)。除了開始循環和比較之外,是否有合併這些數組的優雅解決方案?我只需要SELECT DISTINCT ON (time) grid, time, string_agg(content) FROM myDB GROUP BY time ORDER BY time, grid;
(請忽略可能的關鍵字,不是由於格式化引用,也沒有測試過查詢)。
不是我所知道的。循環並不邪惡,雖然... – Steve 2014-10-06 23:55:29
最好有時間作爲關鍵(官方網格) – Cheery 2014-10-07 00:32:51