2011-02-21 13 views
0

私のコードには奇妙なことがあり、実際には動作しません。
私はいつもこのような文字列変数のキーを持つ配列を使用:PHP配列キーの二重引用符で囲まれた変数

$string = "my key"; 
$array[$string] = "my value"; 

をしかし、ある場合には、それは動作しません。 $stringを二重引用符で囲む必要があります。それ以外の場合は、配列は空のままです。
私は本当に理由を理解していません。さらに、私のコードでは、別の配列を作成するためにidと同じ"$string"を使用していますが、二重引用符を使用しなくても正常に動作します。

ここ

は、二重引用符が必要とされている私のコード(array[])です:

foreach($xml2->menu as $children) { 
    $id = $children['id']; 
    $this->array["$id"] = $children->label;//Problem here 
} 

そしてここで、二重引用符($resultArray[])なしコード:

for($i=0; $i < count($idArray); $i++){ 
    $id = $idArray[$i]; 
    $resultArray[$id] = $this->array[$id];//Problem here 
} 

誰かが理由についてどんな考えを持っていますこれは事件です?

編集:
$idArray[$i]$children[$id]の内容は"about"のようないくつかの文字列、"contact"など
があると私が言うとき、私が作成した配列がnullであることを意味し、「それは動作しません」。

+2

$ children ['id']と$ idArraypp [$ i]には何が書けますか? "それは動作しません"と言うと、エラー/警告が出ますか、それとも変数が__null__ですか? – SERPRO

答えて

0

$ children ["id"]にオブジェクトが含まれていますか?次に、それをintに入力します。

$id = (int) $children["id"]; 

次に、$ idとして再度使用できます。

+0

$ children ["id"]はxmlファイルの単なる文字列です( "id"は要素の属性名です) – TiGi

+0

オブジェクト(var_dump()を見てください)かどうかを調べます。そうであれば、それをintまたは文字列にキャストします(必要に応じて)。 – stefandoorn

関連する問題