2012-01-12 2 views
1

Я пытаюсь получить значение из массива, но когда я использую $array[0], я получаю уведомление PHP «Undefined Offset: 0». Однако, когда я использую $array['id'] (должен быть таким же, как с использованием «0», так как «id» - это первый ключ в массиве), я могу получить значение. Я сделал print_r, и это было выпущено:Примечание: Неопределенное смещение: 0

Array ( 
    [id] => 1 
    [username] => test 
) 

Должен ли я получить ключ, используя его индекс? Я считаю, что он работал раньше, но я не знаю, что я мог сделать, чтобы он прекратил работать. Есть идеи?

ответ

1

Нет, вы не сможете это сделать.

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

Вы также можете использовать array_values для извлечения значений из массива, чтобы существенно преобразовать индексы в числовые, но на самом деле это не одно и то же.

+0

Спасибо, это то, о чем я думал – Preston

2

$array['id'] является не так же, как $array[0]. Эта путаница, вероятно, связана с термином массив. Массивы php - это не то, что вы бы назвали массивом на другом языке, это maps или словари.

(О, и даже если это не так, порядок элементов в php-массиве, карте или словаре соответствует реализации, поэтому, пока вы получите идентификатор с $tmp = array_values($array); echo $tmp[0];, php разрешено перемешайте массив вокруг).

Смежные вопросы