Web-Programming.in.ua

Робота з масивами PHP

Привіт, сьогодні ми познайомимось із ще одним типом змінних - Array(). Цей тип змінної може містити багато значень навіть різних за типом.

Давайте почнемо, створивши масив-список:

<?php
    $array = array("key1", "key2", true);
    print_r($array);
?>

Результатом виконання буде наступне:

Array
(
    [0] => key1
    [1] => key2
    [2] => 1
)

З цього видно, що нумерація масивів починається з нуля! Ми створили масив-список ключі якого - "0", "1", "2", а значення - "key1", "key2", "1". Ключі масиву ми не вказали, тому PHP додав їх сам.

Також можна встановлювати свої ключі (асоціативний масив):

<?php
    $array = array(
        "login" => "aezakmi",
        "logged_in" => true
    );
    print_r($array);
?>

Результат:

Array
(
    [login] => aezakmi
    [logged_in] => 1
)

Щоб не виводити весь масив через функцію "print_r()", що зазвичай робиться в цілях дебагу(пошуку помилок в коді) потрібно виводити через "echo":

<?php
    $array = array("name" => "John");
    echo $array["name"];
?>

Результат:

John

Тепер про те, як перебирається масив. Для цього використовуються цикли:

<?php
    $array = array("key1", 123, "string", true);
    for ($i = 0; $i < count($array); $i++) {
        echo $array[$i]."<br>";
    }
?>

Результат:

key1
123
string
1

В цьому випадку через цикл "for" був розібраний масив-список, який розбирався за індексами, а як бути з асоціативними масивами? Потрібно використати цикл "foreach":

<?php
    $array = array(
        "alert" => "some message",
        "location" => "USA"
    );
    foreach ($array as $key => $value) {
        echo $key." - ".$value."<br>";
    }
?>

Результат:

alert - some message
location - USA

Синтаксис зрозумілий: "$key" - ключ, а "$value"  - значення.

Такими способами можна виводити масиви.

Також їх можна поєднувати:

<?php
    $array1 = array("str1", "str2", 123, 456);
    $array2 = array(
        "name" => "Bogdan",
        "phone" => "Asus Fonepad 7"
    );
    $array = array_merge($array1, $array2);
    print_r($array);
?>

Результат - поєднаний 1-ий і 2-ий масиви:

Array
(
    [0] => str1
    [1] => str2
    [2] => 123
    [3] => 456
    [name] => Bogdan
    [phone] => Asus Fonepad 7
)

Тільки авторизовані користувачі можуть додавати коментарі.

Коментарі:

mikeos
Mikeos  02.05.2015 23:41
В php версії >= 5.4 можна використовувати скорочений варіант: $array = [1,2,3];
Нагору