Jeg tænker:
<?php
define('ASIS', 1);
define('REPLACE', 2);
define('SKIP', 3);
function dump($navn, $vej, $by, $strategy = ASIS, $replacement = '') {
    switch($strategy) {
        case ASIS:
            echo "$navn,$vej,$by\r\n";
            break;
        case REPLACE:
            if(empty($navn)) $navn = $replacement;
            if(empty($vej)) $vej = $replacement;
            if(empty($by)) $by = $replacement;
            echo "$navn,$vej,$by\r\n";
            break;
        case SKIP:
            $line = '';
            if(strlen($line) > 0 && !empty($navn)) $line = $line . ',';
            $line = $line . $navn;
            if(strlen($line) > 0 && !empty($vej)) $line = $line . ',';
            $line = $line . $vej;
            if(strlen($line) > 0 && !empty($by)) $line = $line . ',';
            $line = $line . $by;
            echo "$line\r\n";
            break;
    }
}
echo "ASIS:\r\n";
dump('navn','vej','by');
dump('navn','vej','');
dump('navn','','by');
dump('','vej','by');
dump('navn','','');
dump('','vej','');
dump('','','by');
echo "REPLACE:\r\n";
dump('navn', 'vej', 'by', REPLACE, '?');
dump('navn', 'vej', '', REPLACE, '?');
dump('navn', '', 'by', REPLACE, '?');
dump('', 'vej', 'by', REPLACE, '?');
dump('navn','','', REPLACE, '?');
dump('','vej','', REPLACE, '?');
dump('','','by', REPLACE, '?');
echo "SKIP:\r\n";
dump('navn', 'vej', 'by', SKIP);
dump('navn', 'vej', '', SKIP);
dump('navn', '', 'by', SKIP);
dump('', 'vej', 'by', SKIP);
dump('navn','','', SKIP);
dump('','vej','', SKIP);
dump('','','by', SKIP);
?>
ASIS:
navn,vej,by
navn,vej,
navn,,by
,vej,by
navn,,
,vej,
,,by
REPLACE:
navn,vej,by
navn,vej,?
navn,?,by
?,vej,by
navn,?,?
?,vej,?
?,?,by
SKIP:
navn,vej,by
navn,vej
navn,by
vej,by
navn
vej
by