PHP: массивы

Предыдущая статья: “PHP: типы циклов

В PHP различают три вида массивов. Доступ к каждому значению массива осуществляется с помощью идентификатора, который называется индексом массива.

Виды массивов:

  • Числовой — массив с числовым индексом. Хранение значений и доступ к такому массиву осуществляются линейно.
  • Ассоциативный — массив со строками в качестве индекса. В нем значения элементов хранятся по ассоциации с ключевыми значениями, а не в строгом линейном порядке индексов.
  • Многомерный — массив, содержащий один или несколько массивов, доступ к значениям которых осуществляется с помощью многомерных индексов.

Числовые массивы

Эти массивы могут хранить числа, строки и любые объекты, причем их индексы всегда будут представлены числами. По умолчанию индекс числового массива начинается с нуля.

Пример

Ниже приведен пример создания и доступа к числовому массиву. Для создания массива использована функция array():

<html>
<body>

<?php
/* Первый способ создания массива. */
$numbers = array( 1, 2, 3, 4, 5);

foreach( $numbers as $value ) {
echo "Значение равно $value <br />";
}

/* Второй способ создания массива. */
$numbers[0] = "один";
$numbers[1] = "два";
$numbers[2] = "три";
$numbers[3] = "четыре";
$numbers[4] = "пять";

foreach( $numbers as $value ) {
echo "Значение равно $value <br />";
}
?>

</body>
</html>

Результат:

Значение равно 1 
Значение равно 2
Значение равно 3
Значение равно 4
Значение равно 5
Значение равно одному
Значение равно двум
Значение равно трем
Значение равно четырем
Значение равно пяти

Ассоциативные массивы

Ассоциативные массивы по функциональности похожи на числовые, но отличаются от них индексом. Ассоциативные массивы имеют индекс в виде строки, что позволяет установить прочную ассоциативную связь между ключами и значениями.

Числовой индексный массив будет не лучшим выбором для хранения в массиве данных о зарплатах сотрудников. Вместо этого, лучше использовать имена сотрудников в качестве ключей ассоциативного массива, тогда значениями будут соответствующие зарплаты.

ПРИМЕЧАНИЕ: Не заключайте ассоциативный массив в двойные кавычки, иначе он не вернет никакого значения.

Пример

<html>
<body>

<?php
/* Первый способ создания ассоциативного массива. */
$salaries = array("Мохаммед" => 2000, "Кадир" => 1000, "Зара" => 500);

echo "Зарплата Мохаммеда ". $salaries['Мохаммед'] . "<br />";
echo "Зарплата Кадира ". $salaries['Кадир']. "<br />";
echo "Зарплата Зары ". $salaries['Зара']. "<br />";

/* Второй способ создания массива. */
$salaries['Мохаммед'] = "высокая";
$salaries['Кадир'] = "средняя";
$salaries['Зара'] = "низкая";

echo "Зарплата Мохаммеда ". $salaries['Мохаммад'] . "<br />";
echo "Зарплата Кадира ". $salaries['Кадир']. "<br />";
echo "Зарплата Зары ". $salaries['Зара']. "<br />";
?>

</body>
</html>

Результат:

Зарплата Мохаммеда 2000 
Зарплата Кадира 1000
Зарплата Зары 500
Зарплата Мохаммада высокая
Зарплата Кадира средняя
Зарплата Зары низкая

Многомерные массивы

В многомерном массиве каждый элемент основного массива также может быть массивом. И каждый элемент в подмассиве может быть массивом, и так далее. Доступ к значениям в многомерном массиве осуществляется с помощью многомерного индекса.

Пример

В приведенном ниже примере создан двумерный массив для хранения оценок трех студентов по трем предметам.

Это пример ассоциативного массива. Вы можете создать числовой массив таким же образом:

<html>
<body>

<?php
$marks = array(
"Мохаммад" => array (
"физика" => 35,
"математика" => 30,
"химия" => 39
),

"Кадир" => array (
"физика" => 30,
"математика" => 32,
"химия" => 29
),

"Зара" => array (
"физика" => 31,
"математика" => 22,
"химия" => 39
)
);

/* Оценка значений многомерных массивов */
echo "Оценки Мохаммада по физике : " ;
echo $marks['Мохаммад']['физика'] . "<br />";

echo "Оценки Кадира по математике: ";
echo $marks['Кадир']['математика'] . "<br />";

echo "Оценки Зары по химии : " ;
echo $marks['Зара']['химия'] . "<br />";
?>

</body>
</html>

Результат:

Оценки Мохаммада по физике : 35
Оценки Кадира по математике : 32
Оценки Зары по химии : 39

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен

Предыдущая статья11 исходных программ JavaScript, предоставляющих шаблоны проектирования
Следующая статьяАннотации Java  —  основы