Урок 11. PHP — Массивы

Массив представляет собой структуру данных, которая хранит одно или несколько значений в одном месте. Таким образом это именованный набор однотипных данных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (в отличие от списка, где доступ к элементам напрямую невозможен, только путем прохода всего списка до нужного элемента).

PHP — массив с числовыми индексами

Если это ваш первый опыт работы с массивами, то вы, возможно, не вполне понимаете их концепцию. Представьте, что вы являетесь владельцем бизнеса и хотите сохранить имена всех ваших сотрудников в переменной PHP. Как бы вы это сделали?

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

$employee_array[0] = "Петя";
$employee_array[1] = "Вася";
$employee_array[2] = "Ваня";
$employee_array[3] = "Федор Петрович";

В приведенном выше примере мы использовали ключ / значение. Ключи были числами, указанными в квадратных скобках и значения — имена сотрудников. Каждый ключ массива представляет собой значение, что-то наподобие ссылки. В общем виде для присвоения элементу массива значения требуется запись вида:

  • $array[ключ] = значение;

Примечание: Как вы могли заметить из приведенного выше примера кода, ключи массива начинаются с 0, а не 1. Это очень распространенная проблема для многих начинающих программистов, которые привыкли считать от 1.

Если мы хотим, получить сохраненное значение, то нам понадобится сделать следующее:

echo "Два моих работника:  "
. $employee_array[0] . " и " . $employee_array[1]; 
echo "<br />И еще два работника: " 
. $employee_array[2] . " и " . $employee_array[3];

Результат:
Два моих работника: Петя и Вася
И еще два работника: Ваня и Федор Петрович

PHP массивы очень полезны при использовании в сочетании с циклами, которые мы рассмотрим чуть позже. Выше мы показали пример массива, который использовал целые числа в качестве ключей (численно индексированный массив). Однако, вы также можете указать строку в качестве ключа, тогда это будет уже ассоциативный массив.

PHP — ассоциативные массивы

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

$salaries["Петя"] = 2000;
$salaries["Вася"] = 4000;
$salaries["Ваня"] = 600;
$salaries["Даша"] = 0;

echo "Петя получает - $" . $salaries["Петя"] . "<br />";
echo "Вася получает - $" . $salaries["Вася"] . "<br />";
echo "А Ваня получает всего - $" . $salaries["Ваня"] . "<br />";
echo "Даша в этом месяце не работала, поэтому - $" . $salaries["Даша"]

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

Функции | Содержание | Цикл While

Комментарии:

  1. Александр — 08.08.2012 19:52

    В разделе «ассоциативные массивы» для новичков я бы придумал какой-нибудь другой пример, т.к. здесь имя не является идентификатором личности работника. Потому что Петь, Вась и Вань может быть очень много и в таких случаях подойдет, например, номер паспорта. Это небольшое замечание относится к новичкам, только познающих программирование, для повышение их грамотности.

  2. Саня — 13.08.2013 19:36

    Скажите пожалуйста, как сделать чтобы:

    $salaries[«Петя»] = 2000;
    $salaries[«Вася»] = 4000;
    $salaries[«Ваня»] = 600;
    $salaries[«Даша»] = 0;

    было в одном файле, а в другом:

    echo «Петя получает — $» . $salaries[«Петя»] . «»;
    echo «Вася получает — $» . $salaries[«Вася»] . «»;
    echo «А Ваня получает всего — $» . $salaries[«Ваня»] . «»;
    echo «Даша в этом месяце не работала, поэтому — $» . $salaries[«Даша»]

  3. Саня — 13.08.2013 20:12

    Все, сам уже разобрался по уроку №7

  4. kostya — 15.09.2013 23:31

    класс пхп такой интересный язык, хотя лично я программирую на С\С++ открыл для себя что могут быть ещё и ассоциативыне массивы, хотя в С такого нету, там только цифры для индекса.
    Кстати а чего Дашу так обделили?зарплата 0? требую равноправия полов) xD

  5. ПчелоМух — 03.11.2013 04:55

    Здравствуйте! Я начинающий и до конца не могу, уловить сути и смысла массива. В общем все понятно но… Объясните пожалуйста работу массива на примере, допустим, колоды игральных карт колода которой состоит из 36-ти листов, где есть общее количество карт, 4 масти и значение каждой карты (в сакращеном виде используя пример с 4-мя королями). Как будет выглядеть код? Буду очень благодарен!

  6. Михаил — 06.08.2017 17:21

    Ваші кроки самі доступні для початківців. Дуже дякую.

Добавить комментарий