2011-02-21 77 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