В моем коде есть что-то странное, и я действительно не понимаю, как это происходит.
Я всегда использовал массив с ключами строковых переменных, как это:
$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
.