Display posts from an array of ID’s

if you set the fields parameter to ids you will get an array of ids instead of unneeded post data ex:

$ongoing_args = array(
  'post_type' => 'promotions',
  'meta_key' => 'sp_ongoingPromotion',
  'meta_value' => 1,
  'fields' => 'ids'
);

$current_args = array(
  'post_type' => 'promotions',
  'meta_key' => 'sp_endDate',
  'meta_value' => date("Y/m/d"),
  'meta_compare' => '>=',
  'orderby' => 'meta_value',
  'order' => 'ASC',
  'fields' => 'ids'
);

// Get promotions using the arguments outlined above.
$ongoing_promotions = get_posts( $ongoing_args );
$current_promotions = get_posts( $current_args );

// Merge arrays
$all_promotions = array_merge( $ongoing_promotions, $current_promotions );

$args = array(
  'post__in' => $promotion_ids,
  'numberposts' => 5,
  'post_status' => 'publish'
);

$all_query = new WP_Query($args);
if($all_query->have_posts()){
    while($all_query->have_posts()){
        $all_query->the_post();
        //loop stuff here
    }
}