Урок 9 - Массиви

От і після маленького перериву, повертаюся знову за статті по php.
Сьогодні поговоримо про массиви - одну з найпотужніших частин мови.

Створення массивів на льоту:

$name[0] = "Igor";
$name[1] = "Oleg";
$name[2] = "Yura";

Як бачите ми в одну і ту ж змінну вставили аж 3 імена.

Користь з такого типу зберігання даних можна побачити на наступному прикладу:

<?php
$name[0] = "Igor";
$name[1] = "Oleg";
$name[2] = "Yura";
for($i=0;$i<=0;$i++){
echo $name[$i]."<br />\n";
}
?>

В цьому скрипті, ми “одним махом” візуалізували всі збережені імена. Зручно, чи не так?


Оператор list()

В вищевказаному прикладі ми зберігали 3 імена в одній змінні, а тепер давайте зберігатемимо різні типи даних:

$list[0] = "Bill";
$list[1] = "Gates";
$list[2] = "52";

Як бачите в нас є три типи даних, але як же їх зручно посортувати?
Звичайно ж можна наприклад так:

$list[0] = "Bill";
$list[1] = "Gates";
$list[2] = "52";

$name = $list[0];
$surname = $list[1];
$age = $list[2];

Але для цього ми можемо використовувати дуже зручний оператор list(). І наш скрипт присвоєння перетвореться на такий:

$list[0] = "Bill";
$list[1] = "Gates";
$list[2] = "52";

list ($name, $surname, $age) = $list;

Бачите різницю?

Такі типи присвоєння дуже зручні при обробці великих баз даних. Представте собі базу даних громадян України, яку вам потрібно просто візуалізувати.


Оператор array()

Вернемся до минулого прикладу. Нам потірбно щоб за пізвищем видавало ім’я. Це можна зробити так:

$surname["Gates"] =  "Bill";
$surname["Jobs"] = "Steve";

echo $surname["Gates"]; // виведе Bill
echo $surname["Jobs"]; // виведе Steve

Це теж, як ви бачите, не є дуже зручним способом, асоціації массивам, даних.

Тепер гляньте на спрощений варіант з використанням array()

$names = array();
$name = array( "Gates" => "Bill", "Jobs" => "Steve");
// можна також робити і похожі на попередні массиви
$name = array("Bill", "Steve");

Вивід в цьому випадку теж досить легкий:

$names = array();
$name = array( "Gates" => "Bill", "Jobs" => "Steve");
echo $name["Gates"]; // виведе Bill
echo $name["Jobs"]; // виведе Steve

Правда зручно?

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


Массиви array(), також називають багаторівневими. Чому?

Ось приклад, яки пояснює назву:

$dossier = array(
  "Gates" => array("name"=>"Bill", "age"=>"52"),
  "Jobs" => array("name"=>"Steve", "age"=>"52"),
);

Тяжкувато? Так, але воно цього варте ;) .

Тепер ми можемо з змінної $dossier дізнатися 3 види даних про двох людей і все це в 4 рядочках коду для збереження. На такому рівні тяжко побачити користь такого типу зберігання даних, крім зручності, але коли буде йти мова про бази даних, то таким чином можна зберігати МІЛЬЙОНИ рядків коду автоматизувавши процес присвоєння та виводу даних. Знову ж наведу приклад бази даних всіх громадянів України, мавши базу даних та прописавши 4 рядки коду можна вивсети їх всіх без прописки окремих.

Виведення даних з попереднього прикладу можна зробити так:

echo $dossier["Gates"]["name"]; // виведе ім'я - Bill
echo $dossier["Gates"]["age"]; // виведе 52
...

Функція count()

$num = count($dossier); // в змінні $num буде номер елементів в массиві $dossier

Ця функція працює не тільки з массивами, але зі всіма іншими об’єктами, в випадку зі змінної вона буде завжди повертати 1 (true)

Загрузка...

7 коментарі:

  1. podarok, 30. Січень 2008, 0:20

    print_r() - дуже хороша функція виводу всього масиву в читабельному для людини вигляді!
    Дуже часто використовую її для відладки коду, а також щоб розібратись в існуючому

     
  2. mr.petruccio, 30. Січень 2008, 13:33

    Що мене зразу приперло в пхп масивах, як тільки почав з ними знайомитися так це функція foreach()
    >>podarok print_r() — так то дуже помічна функція

     
  3. virua, 2. Лютий 2008, 14:01

    Мені сподобалось читати цей пост, хоча з масивами я вже знайомий не один рік :) (починав з Паскаля, а тоді JavaScript, а згодом і до PHP дійшов). Оригінальна подача інформації з помірною дозою юмору.

    Гадаю, для початківця, який не знайомий з іншими мовами програмування і як наслідок з масивами, було б незайвим також пояснити, що індексація елементів в масиві позинається з нуля, а не з одиниці. Оскільки не всі винесуть правильний висновок з рядка “$name[0] = “Igor”;” (думки в голос).

    Ну, і до слова. Код

    можна подати ще й так:

    І отримаємо той же масив. Перевага цього способу в тому, що не потрібно слідкувати за індексом. Інколи це зручніше.

     
  4. virua, 4. Лютий 2008, 18:55

    На жаль, в моєму попередньому коментарі чомусь не видно php-коду між, наприклад, текстом “Ну, і до слова. Код” і “можна подати ще й так”. Хоча я його прописав :(

     
  5. hip, 4. Лютий 2008, 19:00

    Це з мотивів безпеки, Wordpress його ігнорує. Для обговорення уроків, та подачі кодів домашніх завдань є блогерський форум: bloggers.org.ua

     
  6. virua, 5. Лютий 2008, 10:18

    Краще б WordPress не ігнорував код в коментарі, а виконував, наприклад, php-функцію htmlspecialchars($коментар) - конвертація спецсимволів в HTML-представлення. Це й самому не важко зробити. Але то вже таке :)

     
  7. vedeney, 22. Березень 2008, 11:18

    $name[0] = “Igor”;
    $name[1] = “Oleg”;
    $name[2] = “Yura”;
    for($i=0;$i<=0;$i++){
    echo $name[$i].”\n”;
    }

    на око…
    результат виводу
    Igor
    а не заявлений функціонал :)

     

Написати коментар:


Украинская Баннерная Сеть
WeRteR Blog Український рейтинг TOP.TOPUA.NEThurtom.com
UA TOP BloggersІвано-Франківськ
Безкоштовний хостинг TOPUA