We've multiple Wordpress sites running on a single framework/markup using the identical functions to simplify updates. Now I wish to give a country selector where all sites are added by hand inside a template file. BUT, I would like the present country flag hidden.

Code sample:

<? 
    function makeItem($domain, $byline, $class, $url) {
    ?>

    <div class="item">
        <a href="<?=$url;?>" class="flag flag<?=$class;?>" title="<?=$domain;?> - <?=$byline;?>"></a>
        <div class="text">
            <a href="<?=$url;?>" class="domain" title="<?=$domain;?> - <?=$byline;?>"><?=$domain;?></a>
            <a href="<?=$url;?>" class="byline" title="<?=$domain;?> - <?=$byline;?>"><?=$byline;?></a>
        </div>
    </div>

    makeItem('Name 1','Byline 1', 'German', '#');

    makeItem('Name 2','Byline 2', 'British', '#');

    makeItem('Name 3','Byline 3', 'Finnish', '#');

    makeItem('Name 4','Byline 4', 'Polish', '#');

    ?>

I am considering an answer in line with the site title: bloginfo(title) When the current site title is "Title 2" and "Title 2" is available within the "makeItem list", it get's removed. Is the fact that possible?

Make use of an array, a loop along with a continue-check. Example:

$items = array(
    array(
        'name'   => 'Name 1',
        'byline' => 'Byline 2',
        'local'  => 'German',
        'other'  => '#',
    ),
    array(
        /* ... */
    ),
);

foreach ($items as $item) {
    // or whatever the criteria is
    if (bloginfo('name') == $item['name']) {
        continue;
    }
    makeItem($item['name'], $item['byline'], $item['local'], $item['other']);
}