PHP занятие 2. Массивы

На уроке будут рассмотрены возможности по работе с массивами в php, объявление массива, виды массивов: многомерные и ассоциативные массивы

PHP: объявление массива

  1. Массивы с числовыми индексами
  2. 1
    2
    3
    4
    
    $fruits[0]="яблоко";
    $fruits[1]="груша";
    $fruits[2]="апельсин";
    $fruits[3]="абрикос";

    Данный вариант инициализации массива сегодня практически не используется. Используется следующий вариант работы с массивами:

  3. Ассоциативный массив
  4. Данный вариант создания массива использует объект array:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    $fruits = array(
         1 => "яблоко", 
         2 => "груша", 
         3 => "апельсин", 
         4 => "абрикос"
    );
     
    // Начиная с версии PHP 5.4
    $fruits = array[
         1 => "яблоко", 
         2 => "груша", 
         3 => "апельсин", 
         4 => "абрикос"
    ];

    Доступ к элементам массива

    1
    2
    3
    4
    5
    6
    7
    8
    
    $fruits[0]="яблоко";
    $fruits[1]="груша";
    $fruits[2]="апельсин";
    $fruits[3]="абрикос";
     
    echo "Первый элемент массива - ". $fruits[0] ."<br>";
    echo "Второй элемент массива - ". $fruits[1] ."<br>";
    echo "Третий элемент массива - ". $fruits[2] ."<br>";

    Результатом выполнения программы будет:

    php объявление массива пример
    Важно: В качестве индекса элемента в ассоциативном массиве может быть не число, а слово (тип string)

    Рассмотрим пример:

    Пример: Создать массив student со значениями имен, фамилий и возраста студентов. Вывести на экран значения элементов массива
    1
    2
    3
    4
    5
    6
    7
    8
    
    $student = array(
       'Name' => John, 
       'Surname' => Smith, 
       'Age' => 20
    );
    echo "имя пользователя  " . $student['Name'] . "<br>";
    echo "фамилия пользователя  " . $student['Surname'] . "<br>";
    echo "возраст пользователя  " . $student['Age'] . "<br>";

    или

    1
    2
    3
    4
    5
    6
    
    $student['Name'] = 'John';
    $student['Surname'] = 'Smith';
    $student['Age'] = 20;
    echo "имя пользователя  " . $student['Name'] . "<br>";
    echo "фамилия пользователя  " . $student['Surname'] . "<br>";
    echo "возраст пользователя  " . $student['Age'] . "<br>";

    Результат:

    вывод значений элементов массива  в php пример

    Важно: Строковые ключи (индексы) нужно всегда заключать в кавычки

    Индексированные массивы без ключа:

    Также следует учесть, что индексы в массиве вообще можно не писать при инициализации массива значениями. Тогда мы создаем так называемый массив-коллекцию (объект-коллекцию):

    $student = array('John','Smith', 20);

    В таком случае интерпретатор сам присвоит им числовые индексы, начиная с 0

    Пример преобразования типов и перезаписи элементов.
    Обратите внимание на использование процедуры var_dump()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <?php
    $my_array = array(
        0  => "a",
        "1"=> "b",
        2  => "c",
        2  => "d",
    );
    var_dump($my_array);
    ?>

    Результат:

    array(3) 
    { 
      [0]=> string(1) "a" 
      [1]=> string(1) "b" 
      [2]=> string(1) "d" 
    }
    
    Пример использования многомерного массива и организации доступа к его элементам
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <?php
    $array_odnom = array(
        "first" => "1",
        2    => 2,
        "multi" => array(
             "1_1" => "1_1"
             )
    );
    var_dump($array_odnom ["first"]);
    var_dump($array_odnom [2]);
    var_dump($array_odnom ["multi"]["1_1"]);
    ?>

    Результат:

    string(1) "1" 
    int(2) 
    string(3) "1_1"
    
    Пример: создать двумерный массив размерностью 3 х 2. Заполнить его значениями для первой строки: «1_1», «1_2», «1_3»; для второй строки: «2_1», «2_2», «2_3». Вывести на экран первый элемент массива

    Выполнение:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    $array_odnom = array(
        1 => array(
    		1 => "1_1",
    		2 => "1_2",
    		3 => "1_3"),
        2 => array(
    		1 => "2_1",
    		2 => "2_2",
    		3 => "2_3"),
     
    );
    echo $array_odnom[1][1];
    Задание php2_1: создайте двумерный массив 3 х 3 — верхний левый угол таблицы умножения Пифагора(1, 2, 3; 4, 6, 8 …)

    Лабораторная работа:
    Допустим, у Вас есть какое-то объявление и несколько разных людей, которым нужно это объявление отправить. Для этого Вы делаете заготовку с содержанием объявления, внутри которого есть ряд изменяющихся параметров: массива имен людей и массив событий. Вывести один вариант итогового объявления на экран. Для задания массивов использовать и ассоциативный массив.

    Используйте шаблон объявления и ориентируйтесь по цветам:

    Красным – массивы.
    Коричневым – числовая переменная.
    Синим – константа.

    Уважаемый (ая), Иван Иванович!
    Приглашаем Вас на день открытых дверей.
    Дата события: 12 мая.
    С уважением, Василий.

    Дополните код:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    // объявление константы
    define("SIGN","С уважением, Вася"); 
    // массив для имен адресатов
    $names = array(...);
    // массив для событий 
    $events = array(
        "op_doors" => "день открытых дверей",
        "vistavka" => "выставку",
    ...
    );
    $str = "Уважаемый(ая), $names[0]! <br>";
    $str .= ...;
    $str .= ...;
    echo ...;