if($key == ‘@attributes’){
とやったら$keyが’0’でも通ってしまう。
http://www.php.net/manual/ja/language.operators.comparison.php
http://www.php.net/manual/ja/language.types.string.php#language.types.string.conversion
http://d.hatena.ne.jp/gallu/20061108/p1
どうやら
「整数値を文字列と比較する際、文字列が 数値に変換されます。 数値形式の文字列を比較する場合、それは整数として比較されます。」
「文字列の変換
数値として文字列が評価された時、結果の値と型は次のように定義されます。
文字列は、’.’、’e’、’E’ のどれかが含まれている場合は float、それ以外は整数として評価されます。
文字列の最初の部分により値が決まります。文字列が、 有効な数値データから始まる場合、この値が使用されます。その他の場合、 値は 0 (ゼロ) となります。有効な数値データは符号(オプション)の後に、 1 つ以上の数字 (オプションとして小数点を 1 つ含む)、 オプションとして指数部が続きます。指数部は ‘e’ または ‘E’ の後に 1 つ以上の数字が続く形式です。
」
「strcmp」か「===」を使わないとだめっぽい