Russian (Pусский) translation by Alexey Pyltsyn (you can also view the original English article)
В этой статье вы узнаете основы массивов в PHP. Вы узнаете, как создать массив и как использовать ассоциативные и многомерные массивы, а еще увидите много примеров массивов в действии.
Что такое массив?
В PHP массив — это структура данных, которая позволяет хранить несколько элементов в одной переменной. Эти элементы хранятся в виде пар "ключ-значение". Фактически, когда нужно сохранить список элементов можно использовать массив. Почти всегда все элементы массива имеют одинаковый тип данных.
В качестве примера предположим, вы хотите сохранить имена фруктов. Без использования массива вы бы скорее всего создали несколько переменных для хранения имен разных фруктов. С другой стороны если вы используете массив для хранения имен фруктов, он может выглядеть следующим образом:
<?php $array_fruits = array('Apple', 'Orange', 'Watermelon', 'Mango'); ?>
Как вы можете видеть, мы использовали переменную $array_fruits
для хранения имен разных фруктов. Важная деталь, про которую нужно упомянуть – позже вы можете добавить больше элементов в переменную с массивом $array_fruits
.
Есть много способов для манипулированием значениями в переменной массива — мы узнаем про них немного позже в этой статье.
Как создать массив
В этом разделе мы выясним, как инициализировать переменную массива и добавить значения в эту переменную.
Когда дело доходит до инициализации массива, есть несколько разных способов сделать это. В большинстве случаев языковая конструкция array()
служит для создания нового массива.
<?php $array = array(); ?>
В предыдущем фрагменте кода, переменная $array
инициализируется пустым массивом.
Начиная с PHP 5.4 можно также использовать короткий синтаксис для инициализации массива.
<?php $array = []; ?>
Теперь давайте посмотрим, как добавлять элементы в массив.
<?php $array = []; $array[] = 'One'; $array[] = 'Two'; $array[] = 'Three'; echo '<pre>'; print_r($array); ?>
Приведенный выше код выведет следующее:
Array ( [0] => One [1] => Two [2] => Three )
Обратите внимание, что индекс массива начинается с 0. Каждый раз при добавлении нового элемента в массив без указания индекса, массиву индекс присваивается автоматически.
Конечно можно также создать массив с уже добавленными значениями. Это наиболее быстрый способ объявить массив, если вы уже знаете, какие значения в нем будут.
<?php $array = ['One', 'Two', 'Three']; ?>
Как получить доступ к элементам массива
В предыдущем разделе мы обсуждали способы инициализации переменной массива. В этом разделе мы рассмотрим несколько различных способов доступа к элементам массива.
Первый очевидный способ доступа к элементам массива – получить их по ключу или индексу.
<?php $array = ['One', 'Two', 'Three']; // get the first element of the $array array echo $array[0]; echo "<br>"; // get the second element of the $array array echo $array[1]; echo "<br>"; // get the third element of the $array array echo $array[2]; echo "<br>"; ?>
Приведенный код ваше выведет следующее:
One Two Three
Более чистый способ написать приведенный выше код — это использовать цикл foreach для итерации по элементам массива.
<?php $array = ['One', 'Two', 'Three']; foreach ($array as $element) { echo $element; echo '<br>'; } ?>
Фрагмент кода выше даст такой же результат, но для его достижения потребовалось гораздо меньше кода.
Аналогично, вы можете также использовать цикл for
для итерации по элементам массива.
<?php $array = ['One', 'Two', 'Three']; $array_length = count($array); for ($i = 0; $i < $array_length; ++$i) { echo $array[$i]; echo '<br>'; } ?>
В данном случае с помощью цикла for
мы перебираем каждый индекс в массиве, а затем выводим значение, хранящееся в этом индексе. В этом примере кода мы использовали одну из наиболее важных функций, которую вы в конечном итоге будете использовать при работе с массивами: count
. Она используется для подсчета, сколько элементов находится в массиве.
Типы массивов в PHP
В этом разделе мы рассмотрим различные типы массива, которые можно использовать в PHP.
Численно-индексированные массивы
Массив с числовым индексом относится к категории индексированных массивов. На самом деле примеры, которые мы рассматривали до этого момента – это индексированные массивы.
Числовой индекс присваивается автоматически, когда вы его не указывается явным образом.
<?php $array = ['One', 'Two', 'Three']; ?>
В приведенном выше примере мы не указали индекс для каждого элемента, поэтому он будет инициализирован с числовым индексом автоматически.
Конечно, можно также создать массив с явным указанием числовых индексов, как показано в следующем примере.
<?php $array = []; $array[0] = 'One'; $array[1] = 'Two'; $array[2] = 'Three'; ?>
Ассоциативные массивы
Ассоциативный массив похож на числовой массив, но у вас появляется возможность использовать строковые значения для ключей массива.
Давайте посмотрим, как создать ассоциативный массив.
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', ];
В качестве альтернативы можно также использовать следующий синтаксис.
<?php $employee = []; $employee['name'] = 'John'; $employee['email'] = 'john@example.com'; $employee['phone'] = '1234567890'; ?>
Для доступа к значениям ассоциативного массива, можно использовать цикл foreach
, либо индекс.
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', ]; // get the value of employee name echo $employee['name']; // get all values foreach ($employee as $key => $value) { echo $key . ':' . $value; echo '<br>'; } ?>
Как вы можете видеть, в данном примере мы получили название через непосредственное обращение по ключу, а затем мы использовали цикл foreach
для получения всех пар "ключ-значение" в массиве.
Многомерные массивы
В примерах, которые мы рассматривали, мы использовали скалярные значения в качестве элементов массива. Однако вы даже можете хранить массивы в качестве элементов внутри других массивов — это многомерный массив.
Давайте посмотрим на пример.
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', 'hobbies' => ['Football', 'Tennis'], 'profiles' => ['facebook' => 'johnfb', 'twitter' => 'johntw'] ]; ?>
Как вы можете видеть, ключ hobbies
в массиве $employee
содержит массив хобби. Кроме того, в ключе profiles
находится ассоциативный массив различных профилей.
Давайте посмотрим, как можно получить значения многомерного массива.
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', 'hobbies' => ['Football', 'Tennis'], 'profiles' => ['facebook' => 'johnfb', 'twitter' => 'johntw'] ]; // access hobbies echo $employee['hobbies'][0]; // Football echo $employee['hobbies'][1]; // Tennis // access profiles echo $employee['profiles']['facebook']; // johnfb echo $employee['profiles']['twitter']; // johntw ?>
Как вы можете видеть, элементы многомерного массива могут быть получены с помощью индекса или ключа этого элемента в каждой части массива.
Некоторые полезные функции по работе с массивами
В этом разделе мы взглянем на несколько полезных массив функций, которые часто используются для операций с массивом.
Функция count
Функция count
используется для подсчета количества элементов в массиве. Это часто полезно, если вы хотите выполнить итерацию массива с циклом for
.
<?php $array = ['One', 'Two', 'Three']; // print the number of elements in the array echo count($array); // the above code should output 3 ?>
Функция is_array
Это одна из наиболее полезных функций для работы с массивами. Она используется для проверки, хранится ли в переменной массив или другой тип данных.
<?php $array = ['One', 'Two', 'Three']; // check if the variable is an array if (is_array($array)) { // perform some array operation } ?>
Вам всегда стоит использовать эту функцию, прежде чем выполнять любую операцию массива, если вы не уверены, что это массив.
Функция in_array
Если вы хотите проверить, существует ли элемент в массиве, то функция in_array
как раз предназначена для этого.
<?php $array = ['One', 'Two', 'Three']; // check if a variable is an array if (in_array('One', $array)) { echo 'Yes'; } else { echo 'No'; } ?>
Первый аргумент функции in_array
— элемент, который вы хотите проверить, а вторым аргументом является сам массив.
Функция explode
Функция explode
разбивает строку на несколько частей и возвращает ее в виде массива. Например допустим, у вас есть строка, разделенная запятыми и вы хотите разбить ее, используя запятую в качестве разделителя.
<?php $string = "One,Two,Three"; // explode a string by comma $array = explode(",", $string); // output should be an array echo '<pre>'; print_r($array); // output /*Array ( [0] => One [1] => Two [2] => Three )*/ ?>
Первый аргумент функции explode
это строка с разделителем (строка, по которой будет разбита переданная строка), а второй аргумент это сама строка.
Функция implode
Это противоположность функции explode
— переданный массив и строка, по которой будет произведено объединение, и функция implode
создаст строку путем объединения всех элементов массива между ними с помощью строки объединения, указанной в первом параметре.
<?php $array = ['One', 'Two', 'Three']; $string = implode(",", $array); // output should be a string echo $string; // output: One,Two,Three ?>
Первый аргумент функции implode
является строкой объединения, а вторым аргументом является массив для объединения.
Функция array_push
Функция array_push
используется для добавления новых элементов в конец массива.
<?php $array = ['One', 'Two', 'Three']; array_push($array, 'Four'); echo '<pre>'; print_r($array); // output /*Array ( [0] => One [1] => Two [2] => Three [3] => Four )*/ ?>
Первый аргумент это массив, а следующие за ним аргументы это элементы, которые будут добавлены в конец массива.
Функция array_pop
Функция array_pop
удаляет элемент из конца массива.
<?php $array = ['One', 'Two', 'Three']; $element = array_pop($array); echo '<pre>'; print_r($array); // output /*Array ( [0] => One [1] => Two )*/ ?>
Функция array_pop
возвращает элемент, который удаляется из массива, так что вы можете сохранить его в переменную. Наряду с array_push
эта функция полезна для реализации структур данных, таких как стеки.
Заключение
Это все, что вам нужно для начала работы с массивами в PHP. Вы узнали, как создавать массивы и получать элементы из них. Вы теперь знаете про различные типы массивов в PHP, и посмотрели в действии на некоторые из наиболее полезных встроенных PHP-функций для работы с массивами.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post