Я пытаюсь получить значение из массива, но когда я использую $array[0]
, я получаю уведомление PHP «Undefined Offset: 0». Однако, когда я использую $array['id']
(должен быть таким же, как с использованием «0», поскольку «id» – это первый ключ в массиве), я могу получить значение. Я сделал print_r, и это было выведено:
Array ( [id] => 1 [username] => test )
Разве я не могу получить ключ, используя его индекс? Я считаю, что он работал раньше, но я не знаю, что я мог сделать, чтобы он прекратил работать. Есть идеи?
Нет, вы не должны этого делать.
Возможно, вы думаете о массивах, полученных из чего-то вроде mysql_fetch_array
, который по умолчанию позволяет использовать как числовые, так и строковые индексы для mysql_fetch_array
к столбцам, но причина, по которой вы можете это сделать, состоит в том, что в массиве содержатся оба из них.
Вы также можете использовать array_values
для извлечения значений из массива, чтобы существенно преобразовать индексы в числовые, но на самом деле это не одно и то же.
$array['id']
не совпадает с $array[0]
. Эта путаница, вероятно, связана с термином array . Массивы php – это не то, что вы бы назвали массивом на другом языке, это карты или словари .
(О, и даже если бы они не были, порядок элементов в php-массиве, карте или словаре соответствует реализации, поэтому, пока вы получите идентификатор с $tmp = array_values($array); echo $tmp[0];
php разрешено перемешать массив вокруг).