ЛАБОРАТОРНАЯ РАБОТА № 2 «АССОЦИАТИВНЫЕ МАССИВЫ PHP»
Цель работы: научиться работать с ассоциативными массивами в PHP.
Часть задач взята с сайта http://old.code.mu/tasks/php
Задание 1. Создать двумерный массив $list, содержащий сведения о сотрудниках
$list = [['id' => 111, 'name'=> 'Vasya', 'sn'=>'Petrov', "age"=> 27],
['id' => 112,'name'=> 'Petya', 'sn'=>'Ivanov', "age"=> 19],
['id' => 113,'name'=> 'Tonya', 'sn'=>'Petrova', "age"=> 27],
['id' => 114,'name'=> 'Iasya', 'sn'=>'Smirnova', "age"=> 22],
['id' => 115,'name'=> 'Daniil', 'sn'=>'popov', "age"=> 19]];
Добавьте данные о еще одном сотруднике.
Выведите данный массив на экран тремя способами:
1.1. С помощью оператора print_r
echo "вывод 1.1. <br>";
print_r($list); // Выводит удобочитаемую информацию о переменной
1.2. С помощью директивы
echo "<br> вывод 1.2. <br>";
var_dump($list); // Выводит информацию о переменной
1.3. C помощью тегов <pre> </pre> (заметьте разницу!)
echo "<br>вывод 1.3. <br>";
echo "<pre>";
print_r($list);
echo "</pre>";
1.4. Вывести информацию в форме:
Сотрудник: Vasya Petrov, возраст 27.
1.5. Добавьте с помощью конструкций языка php (с помощью цикла) еще одну характеристику сотрудника, например дата приема на работу (date_start), установить значение данной характеристики с помощью функции, генерирующей случайную дату:
function randomDate()
{
// Convert to timetamps
$min = strtotime('2009-12-10');
$max = strtotime('2020-12-10');
// Generate random number using above bounds
$val = rand($min, $max);
// Convert back to desired date format
return date('Y-m-d', $val);
}
Код для добавления характеристики напишите самостоятельно.
1.6. Задание по вариантам:
Выполнить задания основываясь на массиве из задания 1. Вывести данные сотрудниках в форме карточек
Вариант 1
Добавить характеристику password. Сформировать пароль из случайных чисел длиной от 5 до 10 знаков. Проверить длину пароля каждого сотрудника, если длина пароля менее 8, добавить сотрудника в черный список. Вывести черный список.
Вариант 2
Добавить характеристику email. Сформировать email из фамилии сотрудника и текста @mail.ru
Вывести информацию о сотрудниках в форме таблицы (Фамилия, Имя, email). вывести список сотрудников, принятых на работу за последние три года.
Вариант 3
Добавить характеристику оклад (случайное число от 15000 до 50000). Вывести сумму всех окладов.
Вариант 4
Необходимо назначить сотрудника на дополнительное дежурство в субботу. Выведите данные сотрудника выбранного с помощью функции определяющей случайное значение в массиве.
Вариант 5
Добавить характеристику отпуск, куда занести случайное значение из массива $Month = array ("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")
Вариант 6
Добавить характеристику количество детей - child (случайное число от 0 до 10). Вывести информацию только по многодетным сотрудникам (name, sn, child).
Вариант 7
Создайте ассоциативный массив дней недели. Ключами в нем должны служить номера дней от начала недели (понедельник - должен иметь ключ 1, вторник - 2 и т.д.). Выведите на экран текущий день недели.
Вариант 8
Создайте двухмерный массив. Первые два ключа - это 'ru' и 'komi'. Пусть первый ключ содержит элемент, являющийся массивом названий месяцев недели по-русски, а второй – на языке коми. Выведите с помощью этого массива суббота по-русски и среду по коми (пусть понедельник - это первый день).
Вариант 9
Дан массив 'a'=>1, 'b'=>2, 'c'=>3'. Запишите в массив $keys ключи из этого массива, а в $values – значения.
Вариант 10
Дан массив 'a'=>1, 'b'=>2, 'c'=>3. Поменяйте в нем местами ключи и значения.
Вариант 11
Создайте массив ['a'=>1, 'b'=2... 'z'=>26] не используя цикл.
Подсказка: используйте функцию range два раза: чтобы сделать массив букв и массив чисел, а затем слейте эти два массива с помощью array_combine.