От автора: PHP массивы — это структуры данных, которые сохраняют один или несколько одинаковых значений в одном значении. Например, если вы хотите сохранить 100 чисел, то вместо определения 100 переменных легко определить массив длиной 100.
Существует три разных типа массивов, в которых каждое значение массива доступно с помощью идентификатора, называемого индексом массива.
Числовой массив — массив с числовым индексом. Значения хранятся и доступны линейным образом.
Ассоциативный массив — массив со строками в качестве индекса. Он сохраняет значения элементов в сочетании с ключевыми значениями, а не строгим линейным порядком индекса.
Многомерный массив. Доступ к массиву, содержащему один или несколько массивов и значений, осуществляется с использованием нескольких индексов.
ПРИМЕЧАНИЕ. Встроенные функции массива описаны в статье, посвященной функциям массива PHP.
Числовой массив
Эти массивы могут хранить числа, строки и любой объект, а их индекс будет представлен числом. По умолчанию индекс массива начинается с нуля.
Пример
Ниже приведен пример создания и получения доступа к числовым массивам. Здесь мы использовали для создания массива функцию array().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<html> <body> <?php /*Первый метод создания массива. */ $numbers = array( 1, 2, 3, 4, 5); foreach( $numbers as $value ) { echo "Value is $value <br />"; } /* Второй метод создания массива. */ $numbers[0] = "one"; $numbers[1] = "two"; $numbers[2] = "three"; $numbers[3] = "four"; $numbers[4] = "five"; foreach( $numbers as $value ) { echo "Value is $value <br />"; } ?> </body> </html> |
Это дает следующий результат:
1 2 3 4 5 6 7 8 9 10 |
Value is 1 Value is 2 Value is 3 Value is 4 Value is 5 Value is one Value is two Value is three Value is four Value is five |
Ассоциативные массивы
Ассоциативные массивы очень похожи на числовые массивы с точки зрения функционала, различие заключается только в индексах. Индексы ассоциативных массивов представляют собой строку, с помощью которой устанавливается связь между ключом и значением.
Например, для хранения в массиве зарплат сотрудников числовой индексный массив не является оптимальным выбором. Вместо этого лучше использовать имена сотрудников в качестве ключей в ассоциативном массиве, а в качестве значения использовать их зарплаты.
ПРИМЕЧАНИЕ. Не сохраняйте ассоциативный массив внутри двойных кавычек при выводе, иначе он не вернет никакого значения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<html> <body> <?php /* Первый метод создания ассоциативного массива. */ $salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500); echo "Salary of mohammad is ". $salaries['mohammad'] . "<br />"; echo "Salary of qadir is ". $salaries['qadir']. "<br />"; echo "Salary of zara is ". $salaries['zara']. "<br />"; /* Второй метод создания массива */ $salaries['mohammad'] = "high"; $salaries['qadir'] = "medium"; $salaries['zara'] = "low"; echo "Salary of mohammad is ". $salaries['mohammad'] . "<br />"; echo "Salary of qadir is ". $salaries['qadir']. "<br />"; echo "Salary of zara is ". $salaries['zara']. "<br />"; ?> </body> </html> |
Это дает следующий результат —
1 2 3 4 5 6 |
Salary of mohammad is 2000 Salary of qadir is 1000 Salary of zara is 500 Salary of mohammad is high Salary of qadir is medium Salary of zara is low |
Многомерные массивы
В многомерном массиве каждый элемент также может представлять собой массив. И каждый элемент в подмассиве также может быть массивом и так далее. Значения в многомерном массиве доступны с использованием нескольких индексов.
Пример
В этом примере мы создаем двухмерный массив для хранения оценок трех студентов по трем предметам. Этот пример представляет собой ассоциативный массив, вы можете таким же образом создать числовой массив.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<html> <body> <?php $marks = array( "mohammad" => array ( "physics" => 35, "maths" => 30, "chemistry" => 39 ), "qadir" => array ( "physics" => 30, "maths" => 32, "chemistry" => 29 ), "zara" => array ( "physics" => 31, "maths" => 22, "chemistry" => 39 ) ); /* Получение доступа к значению многомерного массива */ echo "Marks for mohammad in physics : " ; echo $marks['mohammad']['physics'] . "<br />"; echo "Marks for qadir in maths : "; echo $marks['qadir']['maths'] . "<br />"; echo "Marks for zara in chemistry : " ; echo $marks['zara']['chemistry'] . "<br />"; ?> </body> </html> |
Это дает следующий результат:
1 2 3 |
Marks for mohammad in physics : 35 Marks for qadir in maths : 32 Marks for zara in chemistry : 39 |
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.