Обращение к массиву через индекс

Статус
Закрыто для дальнейших ответов.

jorj

Well-Known Member
Регистрация
14.12.2011
Сообщения
78
Здравствуйте.

В книге причитал, что к ассоциативным массивам можно обратиться также по порядковому номеру, но когда тестил, не выходит.
В чем может быть проблема?

Код:
$my_named_array = array("dog" => "Пират", "cat" => "Мурзик", "hamster" => "Пушок");
$my_dog = $my_named_array[0];
$my_cat = $my_named_array[1];
$my_hamster = $my_named_array[2];
echo "Мою собаку зовут $my_dog, кота - $my_cat, а хомячка $my_hamster";
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
838
Проблема может быть в том, что нельзя так.
А что за книга?
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
print_r($my_named_array) - и увидим что номеров никаких нет. Доступ только по ключам. Если ключ не известен то
Код:
foreach($my_named_array as $key => $value){
echo $key . ' => ' . $value ."\n";
}
Вот так.

Некоторые функции возвращают массив и с ключами и с номерами в индексе, пример mysql_fetch_array(), которая берет строку из ресурса SQL-запроса к базе. Там можно и по ключам и по номерам. Так-же можно просмотре с помощью print_r(...);

Вот почитать про массивы в PHP
 
  • Like
Реакции: jorj

jorj

Well-Known Member
Регистрация
14.12.2011
Сообщения
78
Проблема может быть в том, что нельзя так.
А что за книга?
Мерсер,Кент,Новицки - PHP 5 для начинающих

print_r($my_named_array) - и увидим что номеров никаких нет. Доступ только по ключам. Если ключ не известен то
Код:
foreach($my_named_array as $key => $value){
echo $key . ' => ' . $value ."\n";
}
Вот так.

Некоторые функции возвращают массив и с ключами и с номерами в индексе, пример mysql_fetch_array(), которая берет строку из ресурса SQL-запроса к базе. Там можно и по ключам и по номерам. Так-же можно просмотре с помощью print_r(...);

Вот почитать про массивы в PHP
Спасибо.

Но очень интересно... Почему в книге такая ошибка?
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
Не видел книгу, ничего не могу сказать. Может автор имел ввиду что-то другое, а может просто ошибся. В любом случае обращения по именованным ключам предпочтительнее, код становится понятнее.
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
Использование строк в качестве индексов массивов
Новый элемент массива получает следующий номер (начиная с нуля) в последова+
тельности. Однако массивы можно использовать в разных ситуациях, поэтому часто по+
лезно давать элементам имена, а не последовательные числа. Например, в следующем
фрагменте кода создается массив, в котором каждый элемент имеет в качестве имени
строку, а затем нескольким переменным присваиваются значения именованных строк:
$my_named_array = array("dog" => "Пират", "cat" => "Мурзик", "hamster" =>
"Пушок");
$my_dog = $my_named_array["dog"];
$my_cat = $my_named_array["cat"];
$my_hamster = $my_named_array["hamster"];
echo "Мою собаку зовут $my_dog, кота - $my_cat,
а хомячка $my_hamster";
Возможность доступа к любому значению по его имени важна, потому что не тре+
буется знать последовательность значений или фактический индексный номер ++++++ не+
обходимо знать только имя, заданное элементу. При использовании строк в качестве
индексов массивов лучше всего использовать кавычки вокруг имен элементов. Не+
смотря на то, что опускать кавычки просто и удобно, официальная документация пре+
достерегает от подобной практики, предвосхищая то время, когда кавычки станут
обязательными, а их пропуск будет нарушать работу кода.
При необходимости можно использовать индексные номера вместо имен, так как
PHP+массивы всегда содержат индексы наряду с любыми присвоенными именами, по+
этому следующий код будет работать точно так же, как и в предыдущем примере:
$my_named_array = array("dog" => "Пират", "cat" => "Мурзик", "hamster" =>
"Пушок");
$my_dog = $my_named_array[0];
$my_cat = $my_named_array[1];
$my_hamster = $my_named_array[2];
echo "Мою собаку зовут $my_dog, кота - $my_cat,
а хомячка $my_hamster";
Цитата из книги. Не читайте такую бяку больше) Бред полнейший.
 

jorj

Well-Known Member
Регистрация
14.12.2011
Сообщения
78
Использование строк в качестве индексов массивов
Новый элемент массива получает следующий номер (начиная с нуля) в последова+
тельности. Однако массивы можно использовать в разных ситуациях, поэтому часто по+
лезно давать элементам имена, а не последовательные числа. Например, в следующем
фрагменте кода создается массив, в котором каждый элемент имеет в качестве имени
строку, а затем нескольким переменным присваиваются значения именованных строк:
$my_named_array = array("dog" => "Пират", "cat" => "Мурзик", "hamster" =>
"Пушок");
$my_dog = $my_named_array["dog"];
$my_cat = $my_named_array["cat"];
$my_hamster = $my_named_array["hamster"];
echo "Мою собаку зовут $my_dog, кота - $my_cat,
а хомячка $my_hamster";
Возможность доступа к любому значению по его имени важна, потому что не тре+
буется знать последовательность значений или фактический индексный номер ++++++ не+
обходимо знать только имя, заданное элементу. При использовании строк в качестве
индексов массивов лучше всего использовать кавычки вокруг имен элементов. Не+
смотря на то, что опускать кавычки просто и удобно, официальная документация пре+
достерегает от подобной практики, предвосхищая то время, когда кавычки станут
обязательными, а их пропуск будет нарушать работу кода.
При необходимости можно использовать индексные номера вместо имен, так как
PHP+массивы всегда содержат индексы наряду с любыми присвоенными именами, по+
этому следующий код будет работать точно так же, как и в предыдущем примере:
$my_named_array = array("dog" => "Пират", "cat" => "Мурзик", "hamster" =>
"Пушок");
$my_dog = $my_named_array[0];
$my_cat = $my_named_array[1];
$my_hamster = $my_named_array[2];
echo "Мою собаку зовут $my_dog, кота - $my_cat,
а хомячка $my_hamster";
Цитата из книги. Не читайте такую бяку больше) Бред полнейший.
Можете посоветовать что-нибудь хорошее? Подальше от бяки))
 

Positive_fun

Well-Known Member
Регистрация
28.03.2012
Сообщения
64
Все очень хвалят эту книгу : Энди Гутманс, Стиг Баккен, Дерик Ретанс PHP 5. Профессиональное программирование
но тут нужно основы знать уже. Я сам еще не читал только собрался.
До этого прочитал Мишель Е. Дэвис Джон А. Филлипс Изучаем PHP и MySQL 2008, но мне не очень понравилась.
Вроде еще более менее php5 в подлиннике 2-е издание она меня отпугнула размером сначала но думаю лучше б я ее прочитал вместо первой.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ