Массивы в 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, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: