protected function Union($Field, $Sections) {
      if (!is_array($Sections)) return;
      
      $Interleaved = array();
      foreach ($Sections as $SectionType => $Section) {
         if (!is_array($Section)) continue;
         
         foreach ($Section as $Item) {
            $ItemField = GetValue($Field, $Item);
            $Interleaved[$ItemField] = array_merge($Item, array('ItemType' => $SectionType));
            
            ksort($Interleaved);
         }
      }
      
      $Interleaved = array_reverse($Interleaved);
      return $Interleaved;
   }