2011-02-21 24 views
0

我的代碼中有些奇怪的東西,我真的不明白這一行爲。
我總是用數組像這樣的字符串變量鍵:PHP數組鍵中的雙引號內部變量

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

但在一種情況下,這是行不通的。我不得不把$string放在雙引號中,否則我的數組仍然是空的。
我真的不明白爲什麼。此外,在我的代碼中,我使用相同的"$string"作爲id來創建另一個數組,並且它沒有雙引號就可以正常工作。

這裏是我的代碼在需要雙引號(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