[], 'actual' => [], 'skipped' => []]; foreach ((array)($nodes ?? []) as $n) { $sg = (string)($n['stage'] ?? (($n['category'] ?? 'plan') === 'reality' ? 'actual' : 'plan')); if (!isset($bysStage[$sg])) { $sg = 'plan'; } $bysStage[$sg][] = $n; } // 每条行程带上它的修正历史(模板里画"原计划 → 实际"的对比) foreach ($bysStage as $sg => &$lst) { foreach ($lst as &$nd) { $nd['revisions'] = \App\Trip::revisions((int)$nd['id']); } unset($nd); } unset($lst); $memberIds = array_map('intval', array_column((array)($t['attendees'] ?? []), 'id')); ?>

编辑
返回活动
🧳

$city): ?> 0 ? '·' : '📍' ?>

参与的人(各段行程的合集)
(int)$a['id']])) ?>

照片

还没有照片。

<?= e((string)($ph['name'] ?? '')) ?>
['计划的旅程', '还没走。每段下面的「修正 / 完成 / 标记未成行」都能用'], 'actual' => ['走过的旅程', '已走过 —— 会出现在日历与首页「往年今日」'], 'skipped' => ['没成行的', '这次没去成;不再出现在日程与「往年今日」,但在这里保留可查'], ]; foreach (['plan', 'actual', 'skipped'] as $sg): $list = $bysStage[$sg]; ?>

段

  1. 0): ?> 已修正 次 📍
    实际

    看修正记录( 条)
    #时间地点说明
    修正

    记录实际执行情况。这仍与上面那条计划是同一条记录, 原来的计划数据会保留在「修正记录」里,方便日后对比。 点完这里这段旅程仍是计划;确认无误后再点「标记为实际」。

    0): ?>
    编辑
+ 加一段旅程()