PHP-массив: ассоциативный, многомерный
⚡ Умное резюме
В PHP массивы хранят множество связанных значений в одной переменной, что упрощает группировку и обработку связанных данных. В этом руководстве рассматриваются числовые, ассоциативные и многомерные массивы, операторы сравнения массивов, а также основные функции, такие как count, sort, ksort и asort.

Что такое PHP-массив?
Массив PHP — это переменная, которая хранит более одной части связанных данных в одной переменной.
Представьте себе массив как коробку шоколадных конфет с прорезями внутри.
Прямоугольник представляет собой сам массив, а ячейки с конфетами — значения, хранящиеся в массиве.
Приведенные ниже примеры иллюстрируют, как это работает.
Числовые массивы
В числовых массивах числа используются в качестве ключей доступа.
Ключ доступа — это ссылка на ячейку памяти в переменной массива.
Ключ доступа используется всякий раз, когда мы хотим прочитать или присвоить новое значение элементу массива.
Ниже приведён синтаксис для создания числового массива в PHP.
Пример массива
<?php $variable_name[n] = value; ?>
Or
<?php
$variable_name = array(n => value, ...);
?>
ВОТ,
- «$variable_name…» — имя переменной.
- «[n]» — номер индекса доступа элемента.
- «значение» — это значение, присвоенное элементу массива.
Рассмотрим теперь пример числового массива.
Предположим, у нас есть 5 фильмов, которые мы хотим сохранить в переменных массива.
Для этого мы можем использовать пример, показанный ниже.
<?php $movie[0] = 'Shaolin Monk'; $movie[1] = 'Drunken Master'; $movie[2] = 'American Ninja'; $movie[3] = 'Once upon a time in China'; $movie[4] = 'Replacement Killers'; ?>
Здесь,
Каждому фильму присваивается индексный номер, который используется для получения или изменения его значения. Обратите внимание на следующий код.
<?php $movie[0]="Shaolin Monk"; $movie[1]="Drunken Master"; $movie[2]="American Ninja"; $movie[3]="Once upon a time in China"; $movie[4]="Replacement Killers"; echo $movie[3]; $movie[3] = " Eastern Condors"; echo $movie[3]; ?>
Выход:
Once upon a time in China Eastern Condors
Как видно из приведенных выше примеров, работа с массивами в PHP при работе с несколькими значениями одинакового характера очень проста и гибка.
В качестве альтернативы указанные выше переменные массива также можно создать с помощью следующего кода.
<?php $movie = array(0 => "Shaolin Monk", 1 => "Drunken Master", 2 => "American Ninja", 3 => "Once upon a time in China", 4 => "Replacement Killers" ); echo $movie[4]; ?>
Выход:
Replacement Killers
Ассоциативный массив PHP
Ассоциативные массивы отличаются от числовых массивов тем, что в ассоциативных массивах для ключей идентификаторов используются описательные имена.
Ниже приведён синтаксис для создания ассоциативного массива в PHP.
<?php $variable_name['key_name'] = value; $variable_name = array('keyname' => value); ?>
ВОТ,
- «$variable_name…» — имя переменной.
- “['key_name']” — это ключ доступа к элементу.
- «значение» — это значение, присвоенное элементу массива.
Предположим, у нас есть группа людей, и мы хотим присвоить каждому человеку пол, соответствующий его имени.
Для этого можно использовать ассоциативный массив. Приведённый ниже код поможет нам это сделать.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); print_r($persons); echo ""; echo "Mary is a " . $persons["Mary"]; ?>
ВОТ,
Выход:
Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female
Ассоциативные массивы также очень полезны при извлечении данных из базы данных.
Имена полей используются в качестве ключей идентификатора.
Многомерные массивы PHP
Это массивы, содержащие другие вложенные массивы.
Преимущество многомерных массивов заключается в том, что они позволяют нам группировать связанные данные вместе.
Рассмотрим теперь практический пример, демонстрирующий реализацию многомерного массива в PHP.
В таблице ниже представлен список фильмов по категориям.
| Название фильма | Категория |
|---|---|
| Розовая пантера | комедия |
| Джон Инглиш | комедия |
| Крепкий орешек | Экшн |
| Расходные материалы | Экшн |
| Властелин колец | Эпический |
| Ромео и Джульетта | Romance |
| Не вижу зла, не слышу зла | комедия |
Вышеуказанную информацию можно представить в виде многомерного массива. Код ниже демонстрирует реализацию.
<?php $movies = array( "comedy" => array("Pink Panther", "John English", "See no evil hear no evil"), "action" => array("Die Hard", "Expendables"), "epic" => array("The Lord of the rings"), "Romance" => array("Romeo and Juliet") ); print_r($movies); ?>
ВОТ,
Выход:
Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )
Другой способ определить тот же массив выглядит следующим образом.
<?php $film = array( "comedy" => array( 0 => "Pink Panther", 1 => "John English", 2 => "See no evil hear no evil" ), "action" => array ( 0 => "Die Hard", 1 => "Expendables" ), "epic" => array ( 0 => "The Lord of the rings" ), "Romance" => array ( 0 => "Romeo and Juliet" ) ); echo $film["comedy"][0]; ?>
Выход:
Pink Panther
Примечание: числовой массив фильмов вложен в ассоциативный массив категорий.
PHP-массивы: OperaTORs
| оператор | Имя | Описание | Как это сделать | Результат |
|---|---|---|---|---|
| х + у | Союз | Объединяет элементы из обоих массивов |
<?php $x = array('id' => 1); $y = array('value' => 10); $z = $x + $y; ?> |
Массив([id] => 1 [значение] => 10) |
| х == у | равным | Сравнивает два массива и возвращает true, если они равны. |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x == $y) { echo "true"; } else { echo "false"; } ?> |
Правда или 1 |
| x === y | Идентичный | Сравнивает как значения, так и типы данных |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x === $y) { echo "true"; } else { echo "false"; } ?> |
Ложь или 0 |
| x != y, x <> y | Не равный | Возвращает true, если два массива не равны. |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x != $y) { echo "true"; } else { echo "false"; } ?> |
Ложь или 0 |
| x !== y | Не идентичны | Возвращает true, если значения или типы двух массивов не совпадают. |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x !== $y) { echo "true"; } else { echo "false"; } ?> |
Правда или 1 |
Функции массива PHP
Функция подсчета
Функция `count` используется для подсчета количества элементов в PHP-массиве. Приведенный ниже код демонстрирует реализацию.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo count($lecturers); ?>
Выход:
3
функция is_array
Функция `is_array` используется для определения того, является ли переменная массивом или нет. Рассмотрим теперь пример, демонстрирующий реализацию функции `is_array`.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo is_array($lecturers); ?>
Выход:
1
Сортировать
Эта функция используется для сортировки массивов по их значениям.
Если значения буквенно-цифровые, они сортируются в алфавитном порядке.
Если значения числовые, они сортируются в порядке возрастания.
Эта функция удаляет существующие клавиши доступа и добавляет новые цифровые клавиши.
Результатом работы этой функции является числовой массив.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); sort($persons); print_r($persons); ?>
Выход:
Array ( [0] => Female [1] => Female [2] => Male )
ksort
Эта функция используется для сортировки массива по ключу. Следующий пример иллюстрирует его использование.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); ksort($persons); print_r($persons); ?>
Выход:
Array ( [John] => Male [Mary] => Female [Mirriam] => Female )
ассортимент
Эта функция используется для сортировки массива по значениям, в то время как keeping клавиши. Следующий пример иллюстрирует их использование.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); asort($persons); print_r($persons); ?>
Выход:
Array ( [Mary] => Female [Mirriam] => Female [John] => Male )
Зачем использовать массивы?
- Содержимое массивов можно расширить, чтобы оно могло вмещать больше значений.
- Массивы позволяют легко группировать связанную информацию, например, данные для входа на сервер.
- Массивы помогают писать более чистый код.



