Массивы в php
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы рассмотрели инструкцию require_once в PHP. В данной статье я бы хотел рассказать о создании массивов в PHP. Переменная типа массив — это такая переменная, которая хранит в себе значения сразу нескольких величин. Как мы помним, в PHP напрямую объявлять переменные не нужно. Давайте создадим массив, индексами которого являются простые числа. Забегая вперед, сразу скажу, что такой массив называется списком:
<?php $myNames[0] = "Alex"; $myNames[1] = "Gennadii"; $myNames[2] = "Ivan"; echo "$myNames[0]"; //Выведет Alex; ?>
В данном случае для добавления нового элемента, нам нужно будет указывать индекс. Если мы ошибемся и укажем уже существующий, то значение будет перезаписано. Массивы можно создавать, не указывая в квадратных скобках индекс:
<?php $myNames[] = "Alex"; $myNames[] = "Gennadii"; $myNames[] = "Ivan"; echo "$myNames[1]"; //Выведет Gennadii; ?>
Такой способ создания массивов "на лету" кажется мне более удобным, поэтому его я и использую. Также здесь не возникает потребность в запоминании индексов. Есть более компактный способ создания массивов:
<?php $myNames = array("Alex", "Gennadii", "Ivan"); echo "$myNames[1]"; //Выведет Gennadii; ?>
Для того, чтобы создать пустой массив необходимо написать:
<?php $myNames = array(); ?>
Также вместо числовых индексов можно указывать строковые. В данном случае массив перестаёт быть списком и получается самый настоящий ассоциативный массив. В строковых ключах учитывается регистр букв. Никаких других ограничений на ключи не накладывается. Давайте в качестве примера создадим массив, ключами которого будет являться страны, а значениями — столицы этих стран:
<?php $capitals["Russia"] = "Moscow"; $capitals["France"] = "Paris"; $capitals["Italy"] = "Rome"; echo $capitals["Italy"]; //Выведет Rome ?>
Тут сразу может возникнуть вопрос: а как же перебрать такой массив, ведь в данном случае цикл for не будет работать? Об этом можно будет прочитать в отдельной статье, которая будет полностью посвящена перебору массива, так как считаю это одной из важных тем.
Привожу короткую запись кода, написанного выше:
<?php $capitals = array("Russia"=>"Moscow", "France"=>"Paris","Italy"=>"Rome"); echo $capitals["Italy"]; //Выведет Rome ?>
В PHP довольно просто создавать двумерные, а также многомерные массивы:
<?php $capitals["Russia"] = array("capital"=>"Moscow", "population"=>"8mln."); echo $capitals["Russia"]["capital"]."</br>"; //Выведет Moscow echo $capitals["Russia"]["population"]; //Выведет 8mln. ?>
Определить размер массива можно с помощью функции count():
<?php echo count($capitals); ?>
А что делать, если мы хотим объединить два или более массивов? Для ассоциативных массивов с разными ключами это можно сделать с помощью простого оператора "+":
<?php $a = array("Alex"=>"Gulynin", "Ivan"=>"Gulynin"); $b = array("Viktor"=>"Ivanov"); $c = $a + $b; print_r($c); //Выведет все 3 значения (отладочная функция) ?>
Складывать таким образом списки нельзя, так как однозначно будут встречаться одинаковые индексы, ведь у списков нумерация идёт с нуля:
<?php $a = array(5,2,6); $b = array(1,3,7,12); $c = $a + $b; print_r($c); //Выведет 5,2,6,12 ?>
Попробуйте подумать, почему именно такие вывелись значения. В данном случае можно воспользоваться функцией array_merge():
<?php $a = array(5,6,12); $b = array(12,-6,0,7); $a = array_merge($a, $b); print_r($a); //выведет все 7 элементов ?>
В качестве домашнего задания создайте трехмерный массив, первым элементом которого будет идти название страны, вторым — столица, а третьим численность населения и площадь. Пример $mas["Russia"]["Moscow"]["Population"];
В данной статье вы узнали, что такое массив в PHP, как его создать, что такое двумерные массивы, списки. Также узнали, как объединять массивы.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.