php

Когда мы разбирали тему о типах данных в PHP, то мы обещали написать отдельный пост про массивы. Дело в том, что массивы в PHP, очень сложная для начинающих программистов тема. К этой теме также настоятельно рекомендую подойти внимательно, т.к. от понимания работы массивов будет зависеть понимает вещей, в которых они используются, например циклы. Итак, поехали!

Понятие массива в языке программирования

В который раз обратимся к Wikipedia за знаниями:

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

Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

Ну как понятно? Для начинающих  вряд ли. Разберем это определение по ключевым словам:

объект данных, единицы информации, индексы

Давайте сначала познакомимся с простейшим примером массива в PHP и на нем разберем эти понятия:


<?php
 
$massiv = array('1' => 'единица информации 1', '2' => 'единица информации 2'); 
 
?>

Объект данных — проще говоря, это тип данных. Здесь вы можете почитать, что такое тип данных, и какие используются типы данных в PHP.

Единица информации — это какое угодно значение: число 5, строка ‘Привет!’ или булево значение false. Просто значение.

Индекс — это адрес единицы информации в массиве. В массиве не может быть 2-х одинаковых индексов. Индекс точно указывает расположение единицы информации. Индекс для массива — это то же самое, что полный почтовый адрес для человека. По индексу (адресу) вы легко можете узнать значение (человека, проживающего по этому адресу).

Массивы в PHP

В PHP нет разницы между индексными и ассоциативными массивами; существует только один тип массива, который может содержать и числовые, и строковые индексы.

Понятие ассоциативного массива (Wikipedia):

Ассоциативный массив (словарь, хэш) — абстрактный тип данных (интерфейс к хранилищу данных), позволяющий хранить пары (ключ, значение) и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу.

Опять же, определение написано с учетом того, что вы знакомы со структурами данных (словарь, хэш) и такими понятиями как абстрактный тип данных, интерфейс и т.д. Уберем лишнее (суть останется та же самая):

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

Пример ассоциативного массива:


<?php
 
// Имя и фамилия иного из Ночного Дозора, кто не видел 
$massiv = array( 'name' => 'Антон' , 'surname' => 'Городецкий'); 
 
?>

Этот массив имеет 2 пары ключ-значение:

  • ‘name’         => ‘Антон’
  • ‘surname’   =>   ‘Городецкий’

В качестве ключей выступают ‘name’ и ‘surname’, а значений — ‘Антон’ и ‘Городецкий’.

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