PHP 連想配列で日本語のキーを使って、はまりました。

DBとHTMLのselect文との連携セットで、以下の配列を作って処理しようとしました。

サンプル(クォートを全角で書いています。)

$jp_ary = array(0=>"本当のゼロのキーです",
                     "日本語" => "です",
                     "朝" => "おはよう");

foreach ($jp_ary as $key => $val) {
    if ($key == 0) {
        $key = '';
    }
    $opt_str .= '<option value="' . $key . '"';
    if ($key == $selectVal) {
        $opt_str .= ' selected="selected"';
    } 
    $opt_str .= '>' . $val . '</option>' . "\n";
}

とこの $key == 0 は、キーが日本語だと全部通ってしまう。
おそろしい!!
仕方ないので、 === か 或いは、empty()で判断するように変更。