Я получаю данные из массива. По какой-то причине массив имеет такие ключевые значения, как [3.3]
которых мне трудно получить данные.
У меня есть этот массив [3.3] => First Name [3.6] => Last Name[2] => email@example.com
.
Когда я пытаюсь вызвать $array[3.3]
он возвращает null, но когда я вызываю $array[2]
мне присваивается электронное письмо. Есть идеи?
Используйте одинарные кавычки, ссылаясь на значение ключа (в основном рассматривайте его как строку, это то, что, вероятно, делает PHP)
echo $array['3.3'];
Из руководства php:
Поплавки в ключе усекаются до целого.
Итак, вы пытаетесь получить $ array [3], который не существует, поэтому вы получаете Null
Ключ может быть целым числом или строкой. Если ключ является стандартным представлением целого числа, он будет интерпретироваться как таковой (т.е. «8» будет интерпретирован как 8, а «08» будет интерпретирован как «08»). Поплавки в ключе усекаются до целого. Индексированные и ассоциативные типы массивов являются одним и тем же типом в PHP, которые могут содержать как целые, так и строковые индексы.
Так как float всегда будет усекаться как целое число (например, 3.3 всегда будет интерпретироваться массивом как 3), мне интересно, ожидает ли ваш массив String, а не float. Вы пробовали $ array ["3.3"] вместо $ array [3.3]?
Я предполагаю, что у него есть что-то делать с автозапуском PHP 3.3 => float
попробуйте $ array ['3.3']
Поплавки и числовая строка в ключе усекаются до целого .
Итак, выведите этот код:
$array = [1 => "a", "1" => "b", 1.5 => "c", true => "d"]; print_r($array);
было бы:
Array ( [1] => d )