Переменная внутри двойных кавычек в ключах массива PHP - PullRequest
0 голосов
/ 21 февраля 2011

В моем коде есть что-то странное, и я действительно не понимаю, как это происходит.
Я всегда использовал массив с ключами строковых переменных, как это:

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

Но в одном случае это не работает. Я вынужден поместить $string в двойные кавычки, иначе мой массив останется пустым.
Я действительно не понимаю, почему. Более того, далее в моем коде я использую тот же "$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
}

Кто-нибудь имеет представление о том, почему это происходит?

Edit:
Содержимое $idArray[$i] и $children[$id] представляет собой строку типа "about", "contact" и т. Д.
И когда я говорю «это не работает», я имею в виду, что созданный массив - null.

1 Ответ

0 голосов
/ 21 февраля 2011

Содержит ли $ children ["id"] объект? Затем введите его в int:

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

Затем вы можете снова использовать его как $ id.

...