我正在重构日历应用程序。该日历具有用户定义的网格(可以预订的插槽),但也需要显示“非网格”预订。 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