Примеры решения задач
Задача
Задача. Дан массив с элементами 'Привет, ', 'мир' и '!'. Необходимо вывести на экран фразу 'Привет, мир!'.
Решение:
<?php
//Выведем фразу 'Привет, мир!':
$arr = ['Привет, ', 'мир', '!'];
echo $arr[0].$arr[1].$arr[2];
?>
Разберем это решение.
Слово 'Привет, ' хранится под номером 0, это значит, что для доступа к нему мы должны написать $arr[0].
Для доступа к слову 'мир' мы должны написать $arr[1], а $arr[2] содержит в себе '!'. Далее с помощью оператора 'точка' мы сложим три наши строки ('Привет, ', 'мир' и '!') в одну строку таким образом: $arr[0].$arr[1].$arr[2], и выведем на экран с помощью echo.
Задача
Задача. Решим немного другую задачу: дан массив с элементами 'Привет, ', 'мир' и '!'. Необходимо записать в переменную $text фразу 'Привет, мир!', а затем вывести на экран содержимое этой переменной.
Решение:
<?php
$arr = ['Привет, ', 'мир', '!'];
$text = $arr[0].$arr[1].$arr[2];
/*
В переменной $text теперь лежит строка 'Привет, мир!'.
Выведем ее на экран:
*/
echo $text;
?>
Задача
Задача. Дан массив ['Привет, ', 'мир', '!']. Необходимо записать в первый элемент (то есть элемент с номером ноль) этого массива слово 'Пока, ' (то есть вместо слова 'Привет, ' будет 'Пока, ').
Решение:
<?php
$arr = ['Привет, ', 'мир', '!'];
$arr[0] = 'Пока, '; //перезапишем первый элемент массива
var_dump($arr); //посмотрим на массив и убедимся в том, что он изменился
?>
Задача . Ассоциативные массивы
Задача. Создайте массив заработных плат $arr. Выведите на экран зарплату Пети и Коли.
<?php
//Этот массив дан:
$arr = ['Коля'=>'1000$', 'Вася'=>'500$', 'Петя'=>'200$'];
?>
Решение: чтобы вывести зарплату Коли следует вывести значение элемента массива с ключом 'Коля'. Сделаем это:
<?php
$arr = ['Коля'=>'1000$', 'Вася'=>'500$', 'Петя'=>'200$'];
echo $arr['Коля']; //выведет 1000$
?>
Задача . Способы создания массива
Задача. Создайте массив $arr с элементами 1, 2, 3, 4, 5 двумя различными способами.
Решение:
Первый способ создать массив - объявить его через []:
<?php
$arr = [1, 2, 3, 4, 5];
?>
Второй способ создания массива - это поступить таким образом:
<?php
$arr[] = 1;
$arr[] = 2;
$arr[] = 3;
$arr[] = 4;
$arr[] = 5;
?>
Задача . Многомерный массив
Задача. Дан многомерный массив $arr:
$arr = [
'ru'=>['голубой', 'красный', 'зеленый'],
'en'=>['blue', 'red', 'green'],
];
Выведите с его помощью слово 'голубой'.
Решение: так как массив многомерный (в нашем случае двухмерный), то нам придется написать несколько квадратных скобок подряд. Поясню это по шагам. Давайте сделаем так:
<?php
var_dump($arr['ru']);
?>
В этом случае результатом будет массив ['голубой','красный', 'зеленый'], который является частью нашего многомерного массива. Чтобы вывести слово 'голубой', на необходимо дописать еще одну квадратную скобку с ключом, соответствующим этому элементу (у него нет явного ключа - значит его ключ 0):
<?php
echo $arr['ru'][0]; //выведет 'голубой'
?>
Выведем теперь слово 'красный':
<?php
echo $arr['ru'][1]; //выведет 'красный'
?>
Выведем 'red':
<?php
echo $arr['en'][1]; //выведет 'red'
?>
Задачи для решения
Работа с массивами
Создайте массив $arr=['a', 'b', 'c']. Выведите значение массива на экран с помощью функции var_dump().
Решение:
<?php
$arr = ['a', 'b', 'c'];
var_dump($arr)
?>
С помощью массива $arr из предыдущего номера выведите на экран содержимое первого, второго и третьего элементов.
Решение:
<?php
$arr = ['a', 'b', 'c'];
echo $arr[0].'<br>';
echo $arr[1].'<br>';
echo $arr[2].'<br>';
?>
Создайте массив $arr=['a', 'b', 'c', 'd'] и с его помощью выведите на экран строку 'a+b, c+d'.
Решение:
<?php
$arr = ['a', 'b', 'c', 'd'];
echo $arr[0].'+'. $arr[1].', '.$arr[2].'+'.$arr[3];
?>
Создайте массив $arr с элементами 2, 5, 3, 9. Умножьте первый элемент массива на второй, а третий элемент на четвертый. Результаты сложите, присвойте переменной $result. Выведите на экран значение этой переменной.
Решение:
<?php
$arr = [2, 5, 3, 9];
$result = $arr[0] * $arr[1] + $arr[2] * $arr[3];
echo $result;
?>
Заполните массив $arr числами от 1 до 5. Не объявляйте массив, а просто заполните его присваиванием $arr[] = новое значение.
Решение:
<?php
$arr[] = 1;
$arr[] = 2;
$arr[] = 3;
$arr[] = 4;
$arr[] = 5;
var_dump($arr);
?>
Ассоциативные массивы
Создайте массив $arr. Выведите на экран элемент с ключом 'c'.
$arr = ['a'=>1, 'b'=>2, 'c'=>3];
Решение:
<?php
$arr = ['a'=>1, 'b'=>2, 'c'=>3];
echo $arr['c'];
?>
Создайте массив $arr. Найдите сумму элементов этого массива.
$arr = ['a'=>1, 'b'=>2, 'c'=>3];
Решение:
<?php
$arr = ['a'=>1, 'b'=>2, 'c'=>3];
echo $arr['a'] + $arr['b'] + $arr['c'];
?>
Создайте массив заработных плат $arr. Выведите на экран зарплату Пети и Коли.
$arr = ['Коля'=>'1000$', 'Вася'=>'500$', 'Петя'=>'200$'];
Решение:
<?php
$arr = ['Коля'=>'1000$', 'Вася'=>'500$', 'Петя'=>'200$'];
echo $arr['Петя'].' '.$arr['Коля'];
?>
Создайте ассоциативный массив дней недели. Ключами в нем должны служить номера дней от начала недели (понедельник - должен иметь ключ 1, вторник - 2 и т.д.). Выведите на экран текущий день недели.
Решение: пусть текущий день - четверг, тогда:
<?php
$arr = [1=>'пн', 2=>'вт', 3=>'ср', 4=>'чт', 5=>'пт', 6=>'сб', 7=>'вс'];
echo $arr[4];
?>
Пусть теперь номер дня недели хранится в переменной $day, например там лежит число 3. Выведите день недели, соответствующий значению переменной $day.
Решение: пусть текущий день - четверг, тогда:
<?php
$arr = [1=>'пн', 2=>'вт', 3=>'ср', 4=>'чт', 5=>'пт', 6=>'сб', 7=>'вс'];
$day = 3;
echo $arr[$day];
?>
Многомерные массивы
Создайте многомерный массив $arr. С его помощью выведите на экран слова 'joomla', 'drupal', 'зеленый', 'красный'.
$arr = [
'cms'=>['joomla', 'wordpress', 'drupal'],
'colors'=>['blue'=>'голубой', 'red'=>'красный', 'green'=>'зеленый']
];
Решение:
<?php
$arr = [
'cms'=>['joomla', 'wordpress', 'drupal'],
'colors'=>['blue'=>'голубой', 'red'=>'красный', 'green'=>'зеленый']
];
echo $arr['cms'][0]; //joomla
echo $arr['cms'][2] //drupal;
echo $arr['colors']['green']; //зеленый
echo $arr['colors']['red']; //красный
?>
Создайте двухмерный массив. Первые два ключа - это 'ru' и 'en'. Пусть первый ключ содержит элемент, являющийся массивом названий дней недели по-русски, а второй - по-английски. Выведите с помощью этого массива понедельник по-русски и среду по английски (пусть понедельник - это первый день).
Решение:
<?php
$arr = [
'ru'=>[1=>'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'],
'en'=>[1=>'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'],
];
echo $arr['ru'][1]; //пн
echo $arr['en'][2]; //wd
?>
Пусть теперь в переменной $lang хранится язык (она принимает одно из значений или 'ru', или 'en' - либо то, либо то), а в переменной $day - номер дня. Выведите словом день недели, соответствующий переменным $lang и $day. То есть: если, к примеру, $lang = 'ru' и $day = 3 - то выведем 'среда'.
Решение:
<?php
$arr = [
'ru'=>['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'],
'en'=>['mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'],
];
$lang = 'ru';
$day = 3;
echo $arr[$lang][$day]; //ср
?>