Массивы в PHP

Массивы - это один из наиболее популярных типов данных. На реальных проектах сайтов они являются лучшим помощником разработчика. Давайте создадим пустой массив. Это можно сделать несколькими способами:
<?php
   $a = array();
   $a = [];
?>
Можно создать не пустой массив, а содержащий элементы. Элементами массива могут быть практически любые типы данных. Попробуем заполнить массив числами и словами:
<?php
   $a = array('Сыр', 'Мышь', 15, 'Кот', 18);
?>
Получился массив, который содержит 5 элементов. Чтобы получить значение одного из них, необходимо выбрать его по ключу. Если массив не ассоциативный, то ключи ставятся автоматически, начиная с нуля. Приведём пример обращения:
<?php
   $a = array('Сыр', 'Мышь', 15, 'Кот', 18);

   echo $a[0]; // результат: 'Сыр'
   echo $a[1]; // результат: 'Мышь'
   echo $a[4]; // результат: '18'
?>
Можно самостоятельно задать ключи массива. К примеру, зададим ключи в виде произвольных чисел. Чтобы задать ключ элемента массива, необходим поставить его название и после него значок =>:
<?php
   $a = array(5 => 'Сыр', 6 => 'Мышь', 7 => 15, 8 => 'Кот', 9 => 18);

   echo $a[5]; // результат: 'Сыр'
   echo $a[6]; // результат: 'Мышь'
   echo $a[9]; // результат: '18'
?>
Рассмотрим способы добавления элемента в массив. Возьмём массив из последнего примера и добавим в него произвольные элементы несколькими разными способами:
<?php
   $a = array(5 => 'Сыр', 6 => 'Мышь', 7 => 15, 8 => 'Кот', 9 => 18);

   $a[10] = 'Котята'; // добавит элемент в массив с ключом 10 и значением 'Котята'

   $a[] = 'молоко'; // добавит в конец массива элемент со значением 'молоко'

   array_push($a, 35); // добавит в конец массива элемент со значением 35
?>
Теперь разберёмся как удалять элементы массива. Попробуем удалить первый и последний элемент. А так же элемент с определённым ключом:
<?php
   array_shift($a); // удалит первый элемент массива
   array_pop($a); // удалит последний элемент массива
   unset($a[5]); // удалит элемент массива с ключом 5
?>
Массивы с числами в виде ключей сами по себе довольно бесполезны. Давайте же сделаем массив, который может встретиться в реальном проекте. К примеру, массив, который возникает в процессе авторизации пользователя на сайте. В этом массиве будут храниться логин, мэйл и пароль пользователя. Обычно такой массив делается во время приёма данных от пользователя, после ввода их в форму входа на сайт. И давайте сразу запишем массив в столбик для наглядности. С точки зрения PHP это не вызовет ошибки, но позволит нам лучше воспринимать информацию. В добавок вместо ключей-цифр поставим текст:
<?php
   $a = array(
      'login' => 'mouse', 
      'email' => 'mouse@mousedc.ru', 
      'password' => 'best_password'
   );
   
   echo $a['login']; // результат: 'mouse'
   echo $a['email']; // результат: 'mouse@mousedc.ru'
   echo $a['password']; // результат: 'best_password'
?>
Такие массивы с текстовыми ключами называются ассоциативными. В программировании сайтов они встречаются намного чаще, чем массивы без ключей или с ключами-цифрами. Они сильно облегчают жизнь программистам.
Обратите внимание, что в ключах ассоциативных массивов лучше ставить латинские буквы. Кириллица может вызвать проблемы и непредсказуемое поведение PHP. Так же как и названия переменных, написанные кириллицей.
Попробуем усложнить задачу - сделаем массив внутри массива. Это вполне законно с точки зрения PHP. Попробуем сделать вложенный массив в примере выше. Он будет находиться под ключом 'info'. Запишем в него данные пользователя:
<?php
   $a = array(
      'login' => 'mouse', 
      'email' => 'mouse@mousedc.ru', 
      'password' => 'best_password',
      'info' => array(
            'name' => 'Mouse',
            'color' => 'gray',
      ),
   );
   
   echo $a['login']; // результат: 'mouse'
   echo $a['info']['name']; // результат: 'Mouse'
?>
Можно сделать массив с любым уровнем вложенности.

Строку в массив и обратно

Существуют функция explode, которая позволяет быстро создать массив из строки. Это довольно популярная функция, она часто используется в проектах. Приведём пример её использования:
<?php 
   $a = 'Тише, мыши, кот на крыше';
   $b = explode(', ', $a);
   echo '<pre>';
   print_r($b);
   echo '</pre>';
?>
В первый параметр функции explode ставится разделитель, по которому строка будет разделена на элементы массива. Это может быть точка, запятая, пробел или любой другой символ, который есть в строке. Если разделитель не будет найден в строке, то будет возвращён массив с одним элементом, в котором будет вся строка. Если же разделитель встречается в строке, то она будет разделена на элементы массива. Результат из примера выше будет таким:
Array
(
   [0] => Тише
   [1] => мыши
   [2] => кот на крыше
)
Существует функция implode. По своей работе она противоположна explode и тоже часто используется в проектах. Эта функция объединяет элементы массива в строку. Первым параметром в этой функции ставится строка-соединитель, которая будет между элементами. Соединителем может быть любой символ, даже пробел и пустая строка (то есть без соединителя, все элементы будут слеплены):
<?php 
   $a = array('Тише,', 'мыши,', 'кот', 'на', 'крыше');
   echo implode(' ', $a);
?>
Результат будет таким:
Тише, мыши, кот на крыше
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: