PHP/Масиви

Матеріал з Вікіпідручника
< PHP
Перейти до навігації Перейти до пошуку

Масив (англ. Array) — структурований набір даних, що складається з індексів (ключів) і значень. Є змішаним типом даних. Розрізняють такі типи масивів:

  • Індексований — елементи мають тільки числові індекси. Найчастіше нумерація індексів в такому масиві йде по зростанню від нуля (тобто перший елемент з ключем 0).
  • Асоціативний — елементи мають тільки рядкові індекси.

Простими словами, це ніби один елемент, що об'єднує змінні (бо в змінної є ім'я і значення, як і у елементів масиву є індекс і значення). Якщо ім'я змінної число, то це індексований масив, якщо рядок — асоціативний. А елементами масивів можуть бути різні типи даних.

Індексовані або прості масиви[ред.]

Кожному значенню в масиві відповідає числовий індекс, який за замовчуванням рахується з нуля. Він не є нумерацією, адже його можна задати самостійно.

// Створити 
$масив = []; // пустий масив, також можливо через функцію array()
$масив = ["Олексій", "Іванов"]
//Занести значення в масив
$масив[] = 20; // Додали в масив елемент 20 з індексом 2 (попередній індекс+1)
$масив[] = "18"; // Додали в масив елемент 18 з індексом 3
$масив2[5] = 10; // Створиться масив з одним елементом "10", індекс якого буде "5"
$масив2[99] = 30; // Додали елемент "30" з індексом "99"
$масив2[] = 20; // Додали елемент "20" з індексом "6"

Вивести зміст масивів можна двома функціями:

  • print_r виводить результат у форматі [ключ] => значення
  • var_dump виводить детальний результат, вказує типи даних, кількість байтів, що займає елемент (для рядків).
print_r ($масив);
//Результат:
Array (2) {
     [0] => Олексій
     [1] => Іванов
     [2] => 20
     [3] => 18
}
var_dump ($масив);
//Результат:
Array (2) {
     [0] => string(14) "Олексій"
     [1] => string(12) "Іванов"
     [2] => int(20)
     [3] => string(1) "18"
}
//Вивести певний елемент
echo $масив2[6] // Результат: 20

Якщо використати оператор echo зі змінною, в котрій масив, без квадратних дужок, з'явиться помилка Notice: Array to string conversion (конвертація масиву в рядок), а нижче буде слово Array.

Асоціативні або масиви з рядковими індексами[ред.]

У індексованому масиві важно знайти потрібне значення, якщо не відомо його індексу. В асоціативному масиві індекс задається рядком, це також називають ключем. Завдяки цьому, ключі можуть мати логічне значення, скористатись яким буде не важко.

$кількість = ['цукор' => 5, 'сіль' => 10];
echo "Залишилося ".$кількість['цукор'].' кг цукру.<br>';
echo "Залишилося  ".$кількість['сіль'].' кг солі.<br>';
/*
* Результат:
Залишилося 5 кг цукру.
Залишилося 10 кг солі.
*/

Ключі в такому масиві можуть задаватися й змінними.

$крупа1 = 'Пшенична крупа';
$крупа2 = 'Гречана крупа';
$крупа3 = 'Макарони';
$кількість = [$крупа1 => 10,
			  $крупа2 => 5,
			  $крупа3 => 12];
echo "$крупа1 - залишилося ".$кількість[$крупа1].' кг <br>';
echo "$крупа2 - залишилося ".$кількість['Гречана крупа'].' кг <br>';
echo "$крупа3 - залишилося ".$кількість["Макарони"].' кг <br>';

/*Результат:
Пшенична крупа - залишилося 10 кг 
Гречана крупа - залишилося 5 кг 
Макарони - залишилося 12 кг 
*/


без рамки

Масиви