Урок 3. Основы работы с массивами в PHP

Урок 3. Основы работы с массивами в PHP

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Урок 3. Основы работы с массивами в PHP

Урок 3. Основы работы с массивами в PHP

www.homa.xp3.biz

Теория

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

А теперь представьте, что вам нужно вывести на экран название 3-го месяца. С помощью 12 различных переменных это было бы проблематично, так как вам необходимо помнить названия всех переменных, в которые вы записали имена месяцев. Поэтому для таких вещей был изобретен специальный тип данных. Он называется массив.

Массив создается с помощью функции []:

<?$a=[]/*создаем массив $a*/?>

Пока созданный нами массив не содержит никаких данных. Заполним его названиями дней недели (для краткости пишем 2 буквы каждого дня):

<?$a=['пн','вт','ср','чт','пт','сб','вс']?>

Каждое значение списка, который мы записали в массив (в нашем случае каждый день недели), называется элементом массива.

Элементы разделяются между собой запятой. После этой запятой можно ставить пробелы, а можно и не ставить.

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

<?//В массиве можно хранить как строки, так и числа:

$a=['пн',256,'ср',34,38,'сб',95]?>

Посмотреть содержимое массива с помощью echo мы, не сможем:

<?//Пробуем вывести с помощью echo содержимое массива $a:

$a=['пн','вт','ср','чт','пт','сб','вс'];echo$a?>

На экране вместо содержимого массива видим слово Array.

Для того, чтобы PHP вывел нам все элементы массива, нужно воспользоваться функцией var_dump:

<?//Пробуем вывести с помощью var_dump содержимое массива $a:

$a=['пн','вт','ср','чт','пт','сб','вс'];var_dump($a)?>

Вот теперь мы действительно увидим все элементы нашего массива.

Для того, чтобы узнать, какие именно элементы хранятся в массиве, мы должны пользоваться функцией var_dump, а не echo.

Как вывести отдельный элемент массива

Итак, массив месяцев мы составили и даже научились смотреть на него функцией var_dump. Однако, полезного пока мало, так как var_dump используется для отладки кода и выводит весь массив целиком.

Предположим, мы хотим вывести на экран среду.

Делается это так: нужно после переменной массива (в нашем случае $a) написать квадратные скобки [], а в них указать порядковый номер элемента, который мы хотим вывести: $a[3]. Казалось бы, что порядковый номер среды - это 3, но это не так. Потому что в программировании нумерация начинается с 0. Поэтому 0 - это понедельник, 1 - это вторник, а 2 - это среда.

Посмотрите и повторите пример:

<?//Выведем слово ср:

$a=['пн','вт','ср','чт','пт','сб','вс'];echo$a[2]?>

Ассоциативный массив

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

В нашем случае PHP сам определял ключи для элементов (это были их порядковые номера). Иногда это может оказаться неудобным (мы хотим вывести на экран название 3-го дня недели (среду), а должны писать в квадратных скобках цифру 2). Поэтому в PHP можно указать ключи в явном виде - так, как нам нужно. Сделаем так, чтобы понедельник имел ключ 1, а не 0, как было раньше (и всем остальным дням прибавим 1):

<?//Укажем ключи в явном виде:
$a=[1=>'пн',2=>'вт',3=>'ср',4=>'чт',5=>'пт',6=>'сб',7=>'вс'];
echo$a[1]//выведет пн
?>

Синтаксис здесь такой: ключ, затем идет стрелка =>, а потом значение.

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

<?//Массив работников:

$a=['Коля'=>200,'Вася'=>300,'Петя'=>400]?>

Узнаем зарплату Васи:

<?
$a=['Коля'=>200,'Вася'=>300,'Петя'=>400];
echo$a['Вася']//выведет 300
?>

Массивы, у которых явно указаны ключи, называются ассоциативными.

Хитрость с ключами

Когда мы делали ассоциативный массив дней недели, нам приходилось расставлять все ключи вручную. И все для того, чтобы нумерация началась не с 0, а с 1. Это было немного неудобно.

На самом деле нет необходимости расставлять ключи всем элементам - достаточно только 1-му элементу поставить ключ 1. Если у 2-го элемента не будет ключа, PHP поставит его автоматически, причем следующий по порядку. А следующим номером будет число 2, так как предыдущий элемент имел ключ 1 (неважно, что мы сами его поставили, а не PHP автоматически).

Исправим наш массив:

<?//Укажем ключи в явном виде:
$a=[1=>'пн','вт','ср','чт','пт','сб','вс'];
echo$a[3]//выведет ср
?>

Итак, этот массив с 1 нашим ключом фактически будет таким же, как и массив со всеми ключами, но сделать его проще - ключ ставится только 1-му элементу, а не всем.

Как еще можно создать массив

Объявление массива с помощью команды [] не является единственным способом его создания. Можно просто присвоить значения элементам массива, не объявляя его через array (PHP нас поймет и сам создаст массив):

<?//Можно не писать [], а просто присвоить значения его элементам:
$a[0]=1;
$a[1]=2;
$a[2]=3;
var_dump($a)//с помощью var_dump убеждаемся в том, что $a - это массив
?>

Естественно, ключи могут быть не только числовыми, но и текстовыми:

<?//Ключи могут быть строками:
$a['Коля']=100;
$a['Вася']=200;
$a['Петя']=300;
var_dump($a)//с помощью var_dump убеждаемся в том, что $a - это массив
?>

Кроме того, можно сделать так, что PHP сам добавит ключи (начиная с 0 и так далее). Для этого мы оставим квадратные скобки пустыми: $a[]=1, а PHP сам добавит ключ. Пример:

<?//Мы не пишем ключи в квадратных скобках
$a[]=100;//100 будет иметь ключ 0
$a[]=200;//200 будет иметь ключ 1
$a[]=300;//300 будет иметь ключ 2
var_dump($a)//массив $a будет иметь вид [0=>100,1=>200,2=>300]
?>

Все способы создания массива

Итак, повторим все способы создания массива:

<?//Можно просто его объявить:
$a=[];
//Можно его сразу и заполнить:
$a=[1,2,3];
//Можно не писать [], а просто присвоить значения его элементам:
$a[0]=1;
$a[1]=2;
$a[2]=3;
//Можно даже не писать ключи, тогда PHP добавит их автоматически, начиная с 0:
$a[]=1;
$a[]=2;
$a[]=3
?>

Многомерный массив

Элементы массива могут быть не только строками и числами, но и массивами. Т.е. у нас получится массив массивов или многомерный массив.

Давайте сделаем массив студентов $students, который будет содержать 2 подмассива: студенты мужского пола и женского:

<?//Многомерный массив студентов:

$a=['boys'=>['Коля','Вася','Петя'],'girls'=>['Даша','Маша','Лена']]?>

Чтобы вывести какой-либо элемент из многомерного массива следует писать уже не 1 пару [], а 2: $a['boys'][0] - так мы выведем 'Коля'.

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович:
8-965-148-98-02, diplom07@mail.ru.
Печатать страницу: Урок 3. Основы работы с массивами в PHP

Урок 3, Основы работы с массивами в PHP, Урок, 3, Основы, работы, с, массивами, в, PHP, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, Создание сайтов, web-программирование, seo-продвижение, создание и раскрутка сайтов, вбиваю в топ-10, как гвозди, попробуйте бесплатно, Создание сайтов, web-программирование, seo-продвижение, Урок, 3, Основы, работы, с, массивами, в, PHP, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, раскрутка сайтов, Вбиваю в ТОП-10, как гвозди, раскрутка сайтов, Делаю и раскручиваю сайты, Дмитрий Владимирович

×

Ваше письмо