Массивы в php

Массивы в 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, как его создать, что такое двумерные массивы, списки. Также узнали, как объединять массивы.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *