Filtering a function’ output for a new continued function

How about using a standard for loop instead:

$sunnytags = get_tags ($tagargs);
$count = count ($sunnytags);
for ($i = 0; $i < ($count < 15 ? $count : 15); $i++) {
    $string .= '<a class="tag2" href="'. get_tag_link ($sunnytags[$i]->term_id) .'">'. $sunnytags[$i]->name . '</a>';
}

And then later, whether you re-run the query or (better still) save $sunnytags for later use, you can get the rest of the elements like this:

for ($i = 15; $i < $count; $i++) {
    // Process the rest of them here as $sunnytags[$i]
}