Примечание: Неопределенное смещение: 0

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