>>前スレ992さんありがとう

ファイル名による条件分岐を前スレで教えて頂いたのですが、
どうしてもうまくいかないものでお知恵を拝借させてください。

top_link.php、und_index.php、sid_read.phpと3つファイルがあるとして
ファイル名の頭3文字による条件分岐をしたい

<?php
$array = array("top_link.php", "und_index.php", "sid_read.php");
foreach($array as $file){
preg_match("/(.*)_.*\.php/", $file, $match);
switch ($match[1]){
case "top":
echo "トップ";
break;
case "und":
echo "アンダー";
break;
default:
echo "その他";
}
}?>

ところが実行するとechoが全て実行されてしまいます。
どうやったらうまくいきますでしょうか?