Array (масиви)

Матеріал з Вікі ЦДУ
Версія від 08:31, 7 квітня 2012; V kotyak (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Тип array (масив)

Масив у PHP являє собою впорядковану карту – тип, що перетворює значення в ключі. Цей тип оптимізовано у декількох напрямках, тому ви можете використовувати його як масив, список (вектор), хеш-таблицю (що є реалізацією карти), стек, черга і т.д. Оскільки ви можете мати як значення інший масив PHP, можна також легко емулювати дерева.
Задати масив можна за допомогою конструкції array() або безпосередньо задаючи значення його елементам. Визначення за допомогою array()

array ([key] => value,[key1] => value1, ... )


Мовна конструкція array() приймає як параметри пари ключ => значення, розділені комами. Символ => встановлює відповідність між значенням і його ключем. Ключ може бути як цілим числом, так і рядком, а значення може бути будь-якого ніснуючого в PHP типу. Числовий ключ масиву часто називають індексом. Індексування масиву в PHP починається з нуля. Значення елемента масиву можна одержати, вказавши після імені масиву в квадратних дужках ключ шуканого елемента. Якщо ключ масиву являє собою стандартний запис цілого числа, то він розглядається як число, в противному випадку – як рядок. Тому запис $a["1"] рівносильний запису $a[1], так само як і $a["-1"] рівносильне $a[-1].

<?php
$books = array ("php" =>"PHP users guide",12 => true);
echo $books["php"];
//виведе "PHP users guide"
echo $books[12];     //виведе 1
?> 


Якщо для елемента ключ не заданий, то в якості ключа береться максимальний числовий ключ, збільшений на одиницю. Якщо вказати ключ, якому вже було присвоєно якесь значення, то воно буде перезаписано. Починаючи з PHP 4.3.0, якщо максимальний ключ – від’ємне число, то наступним ключем масиву буде нуль (0).

<?php
// масиви $arr і $arr1 еквіваленти
$arr = array(5 => 43, 32, 56, "b" => 12);
$arr1 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?> 


Якщо використовувати як ключ TRUE або FALSE, то його значення переводиться відповідно в одиницю і нуль типу integer. Якщо використовувати NULL, то замість ключа одержимо порожню стрічку. Можна використовувати і сам порожню стрічку як ключ, при цьому її треба брати в лапки. Так що це не те ж саме, що використання порожніх квадратних дужок. Не можна використовувати як ключ масиви й об'єкти. Визначення за допомогою синтаксису квадратних дужок
Створити масив можна, просто записуючи в нього значення. Як ми вже говорили, значення елемента масиву можна одержати за допомогою квадратних дужок, всередині яких потрібно вказати його ключ наприклад, $book["php"]. Якщо вказати новий ключ і нове значення наприклад, $book["new_key"]="new_value", то в масив додасться новий елемент. Якщо ми не вкажемо ключ, а тільки привласнимо значення $book[]="new_value", то новий елемент масиву буде мати числовий ключ, на одиницю більший максимального існуючого. Якщо масив, у який ми додаємо значення, ще не існує, то він буде створений.

<?
$books["key"]= value; // додали в масив
                     // $books значення 
                     // value із ключем key
$books[] = value1; /* додали в масив
                     значення value1 з
                     ключем 13, оскільки
                     максимальний ключ у
                     ми був 12 */
?>


Для того щоб змінити конкретний елемент масиву, потрібно просто присвоїти йому з його ключем нове значення. Змінити ключ елемента не можна, можна тільки знищити елемент (пару ключ/значення) і додати нову. Щоб видалити елемент масиву, потрібно використовувати функцію unset().

<?php
$books = array ("php" =>"PHP users guide",12 => true);
$books[] ="Book about Perl"; // додали елемент
                   // з ключем (індексом)
                   // 13 це еквівалентно
                   // $books[13] = 
                  // "Book about Perl";
$books["lisp"] =123456; /* Це додає до масиву новий
           елемент із ключем "lisp" і
           значенням 123456 */
unset($books[12]); // Це видаляє елемент
                  // c ключем 12 з масиву 
unset ($books); // видаляє масив цілком
?> 


Помітимо, що, коли використовуються порожні квадратні дужки, максимальний числовий ключ шукається серед ключів, що існують у масиві з моменту останнього переіндексування. Переіндексувати масив можна за допомогою функції array_values().

<?php
$arr =array ("a","b","c"); 
 /* Створюємо масив зі значеннями "a", "b" і "c".
      Оскільки ключі не зазначені, вони будуть 
           0,1,2 відповідно */
print_r($arr); // виводимо масив (і ключі, і значення)
unset($arr[0]);
unset($arr[1]);
unset($arr[2]); 
        // знищуємо з нього всі значення 
print_r($arr);  // виводимо масив (і ключі, і значення)
$arr[] = "aa";  // додаємо новий елемент
               // у масив. 
               // Його індексом (ключем)
               // буде 3, а не 0
print_r($arr);
$arr =array_values($arr); // переіндексуємо масив 
$arr[] = "bb"; // ключем цього елемента буде 1
print_r($arr);
?>

Результатом роботи цього скрипта буде:

Array ( [0] => a [1] => b [2] => c )
Array ( ) 
Array ( [3] => aa ) 
Array ( [0] => aa [1] => bb )