1. Головна
  2. Колонка автора
  3. Типи даних в PHP: Масиви (Array)

Типи даних в PHP: Масиви (Array)

Масив у PHP – це впорядкований набір даних. Значенням масиву може бути інший масив PHP, що дозволяє створювати багатовимірні масиви.
Типи даних в PHP: Масиви (Array)
Масив може бути створений мовною конструкцією Array. Як параметр вона приймає будь-яку кількість розділених комами пар "Key => Value" (ключ => значення).
array(
key => value,
key2 => value2,
key3 => value3,
...
)
Кома після останнього елемента масиву необов’язкова і може бути опущена. Зазвичай це робиться для однорядкових масивів, для багаторядкових остання кома дозволяє легше додавати нові елементи в кінець масиву.

Також можна використовувати короткий синтаксис визначення масивів, який замінює мовну конструкцію array() на [] (починаючи з PHP 5.4):
$array = array(
"foo" => "bar",
"bar" => "foo",
);
$array = [
"foo" => "bar",
"bar" => "foo",
];
Ключ Key може бути типу Integer, або типу String. Параметр Value може бути будь-якого типу.

Додатково із ключем Key будуть зроблені такі перетворення:

- Рядки, що містять ціле число, будуть перетворені до типу Integer.

- Числа з плаваючою крапкою (тип Float) будуть перетворено до типу Integer.

- Тип Bool також перетворюється на тип Integer.

- Тип Null буде перетворено на порожній рядок "".

Масиви (тип Array) та об’єкти (тип Object) не можуть використовуватись як ключі. При подібному використанні генеруватиметься попередження: Fatal error: Illegal offset type (Неприпустимий тип зміщення).

Якщо кілька елементів в оголошенні масиву використовують однаковий ключ, то останній буде використовуватися, а всі інші будуть перезаписані.

Масиви в PHP можуть містити ключі типів Integer та String одночасно, оскільки PHP не робить різницю між індексованими та асоціативними масивами.

Параметр Key є необов’язковим. Якщо він не вказаний, PHP використовуватиме попереднє найбільше значення ключа типу Integer, збільшене на 1.

Можливо вказати ключ тільки для деяких елементів та пропустити для інших:
$array = array(
"a",
"b",
6 => "c",
"d",
);
Результат виконання цього прикладу:
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[6]=>
string(1) "c"
[7]=>
string(1) "d"
}
Як ви бачите останнє значення "d" було надано ключу 7. Це сталося тому, що найбільше значення ключа цілого типу перед цим було 6.

Доступ до елементів масиву

Доступ до елементів масиву може бути здійснений за допомогою синтаксису:
array[key]
Приклад доступу до елементів масиву:
echo $array[6];
echo $array{12};
echo $array['a']['b'];
Як видно з прикладу, квадратні і фігурні дужки можна взаємозамінно використовувати для доступу до елементів масиву.

Починаючи з PHP 5.4 стало можливим пряме розіменування масиву, що повертається як результат виклику функції або методу.
function getArray() {
return array('a', 'b', 'c');
}
echo $secondElement = getArray()[1]; // b
Спроба доступу до невизначеного ключа в масиві аналогічна спробі доступу до будь-якої іншої невизначеної змінної: буде згенерована помилка рівня E_NOTICE з результатом NULL.

Існуючий масив може бути змінений шляхом явної установки значень у ньому. Це виконується присвоєнням значень масиву із зазначенням у дужках ключа. Крім того, ключ можна опустити, в результаті вийде порожня пара дужок ([]).
$array['foo'] = 10;
$array[] = 11;
Якщо масив $array ще не існує, його буде створено. Таким чином, це ще один спосіб визначити масив Array. Однак такий спосіб застосовувати не рекомендується, оскільки якщо змінна $array вже містить певне значення (наприклад, значення типу String із змінної запиту), то це значення залишиться на місці і [] може означати доступ до символу в рядку. Краще ініціалізувати змінну шляхом явного надання значення.

Для зміни певного значення просто надайте нове значення елементу, використовуючи його ключ. Якщо ви бажаєте видалити пару ключ/значення, необхідно використовувати функцію Unset.
unset($array[5]);
Також слід зазначити, що максимальне значення ключа не обов’язково існує в масиві в цей момент. Воно могло просто існувати в масиві якийсь час, відколи він був переіндексований востаннє.

Перетворення на масив

Для будь-якого з типів Integer, Float, String, Boolean і Resource, перетворення значення в масив дає результатом масив з одним елементом (з індексом 0), що є скалярним значенням, з якого ви почали.

Якщо ви перетворюєте на масив об’єкт (object), ви отримаєте як елементи масиву властивості (змінні-члени) цього об’єкта. Ключами будуть імена змінних-членів, з деякими примітними винятками: цілі властивості стануть недоступні; до закритих полів класу (private) попереду буде дописано ім’я класу; до захищених полів класу (protected) попереду буде додано символ '*'. Ці додані значення з обох боків мають нульові байти.

Якщо ви перетворюєте на масив значення NULL, ви отримаєте порожній масив.

#ТипиданихPHP
Редакція «КовельPost» може не поділяти думку блогерів або дописувачів. За зміст публікацій і їх достовірність відповідальність несуть автори.

Коментарі

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

Підписуйтесь на наш канал у Telegram! 🚀

@kovelpost