Примеры решения задач

Задача

Задача. Создайте массив, заполненный числами от 1 до 100. Найдите сумму элементов данного массива.

Решение: для начала создадим массив с числами от 1 до 100. Вручную это сделать будет очень сложно, поэтому воспользуемся функцией range:

<?php
	$arr = range(1, 100);
?>

Сумму элементов полученного массива найдем с помощью функции array_sum (можно использовать цикл foreach, как мы это делали раньше, но array_sum в данном случае гораздо удобнее и проще):

<?php
	//Найдем сумму элементов нашего массива:
	echo array_sum(range(1, 100));
?>

Задача . Функция array_map

Задача. Дан массив с элементами 'a', 'b', 'c', 'd', 'e'. С помощью функции array_map сделайте из него массив 'A', 'B', 'C', 'D', 'E'.

Решение: с помощью функции array_map задача решается в одну строчку - первым параметром передадим ей функцию strtoupper, а вторым - массив, к каждому элементу которого мы хотим применить strtoupper:

<?php
	$arr = ['a', 'b', 'c', 'd', 'e'];
	$arr = array_map('strtoupper', $arr);
	var_dump($arr);
?>

Задачи для решения

Работа с count

Для решения задач данного блока вам понадобятся следующие функции: count.

Дан массив $arr. Подсчитайте количество элементов этого массива.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	echo count($arr);
?>

Дан массив $arr. С помощью функции count выведите последний элемент данного массива.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	echo $arr[count($arr) - 1]; //последний элемент массива
?>

Работа с in_array

Для решения задач данного блока вам понадобятся следующие функции: in_array.

Дан массив с числами. Проверьте, что в нем есть элемент со значением 3.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	var_dump(in_array(3, $arr));
?>

Работа с array_sum и array_product

Для решения задач данного блока вам понадобятся следующие функции: array_sum, array_product.

Дан массив [1, 2, 3, 4, 5]. Найдите сумму элементов данного массива.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	echo array_sum($arr);
?>

Дан массив [1, 2, 3, 4, 5]. Найдите произведение (умножение) элементов данного массива.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	echo array_product($arr);
?>

Дан массив $arr. С помощью функций array_sum и count найдите среднее арифметическое элементов (сумма элементов делить на их количество) данного массива.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	echo array_sum($arr) / count($arr);
?>

Работа с range

Для решения задач данного блока вам понадобятся следующие функции: range.

Создайте массив, заполненный числами от 1 до 100.

Решение:

<?php
	$arr = range(1, 100);
	var_dump($arr);
?>

Создайте массив, заполненный буквами от 'a' до 'z'.

Решение:

<?php
	$arr = range('a', 'z');
	var_dump($arr);
?>

Создайте строку '1-2-3-4-5-6-7-8-9' не используя цикл.

Подсказка: используйте функции range и implode.

Решение:

<?php
	echo implode('-', range(1, 9));
?>

Найдите сумму чисел от 1 до 100 не используя цикл.

Решение:

<?php
	echo array_sum(range(1, 100));
?>

Найдите произведение чисел от 1 до 10 не используя цикл.

Решение:

<?php
	echo array_product(range(1, 10));
?>

Работа с array_merge

Для решения задач данного блока вам понадобятся следующие функции: array_merge.

Даны два массива: первый с элементами 1, 2, 3, второй с элементами 'a', 'b', 'c'. Сделайте из них массив с элементами 1, 2, 3, 'a', 'b', 'c'.

Решение:

<?php
	$arr1 = [1, 2, 3];
	$arr2 = ['a', 'b', 'c'];
	$result = array_merge($arr1, $arr2);
	var_dump($result);
?>

Работа с array_slice

Для решения задач данного блока вам понадобятся следующие функции: array_slice.

Дан массив с элементами 1, 2, 3, 4, 5. С помощью функции array_slice создайте из него массив $result с элементами 2, 3, 4.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	$result = array_slice($arr, 1, 3);
	var_dump($result);
?>

Работа с array_splice

Для решения задач данного блока вам понадобятся следующие функции: array_splice.

Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice преобразуйте массив в [1, 4, 5].

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	array_splice($arr, 1, 2);
	var_dump($arr);
?>

Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice запишите в новый массив элементы [2, 3, 4].

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	$result = array_splice($arr, 1, 3);
	var_dump($result);
?>

Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice сделайте из него массив [1, 2, 3, 'a', 'b', 'c', 4, 5].

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	array_splice($arr, 3, 0, ['a', 'b', 'c']);
	var_dump($arr);
?>

Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice сделайте из него массив [1, 'a', 'b', 2, 3, 4, 'c', 5, 'e'].

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	array_splice($arr, 1, 0, ['a', 'b']);
	array_splice($arr, 6, 0, ['c']);
	array_splice($arr, 8, 0, ['e']);
	var_dump($arr);
?>

Работа с array_keys, array_values, array_combine

Для решения задач данного блока вам понадобятся следующие функции: array_keys, array_values, array_combine.

Дан массив 'a'=>1, 'b'=>2, 'c'=>3'. Запишите в массив $keys ключи из этого массива, а в $values – значения.

Решение:

<?php
	$arr = ['a'=>1, 'b'=>2, 'c'=>3];
	$keys = array_keys($arr);
	$values = array_values($arr);
	var_dump($keys);
	var_dump($value);
?>

Даны два массива: ['a', 'b', 'c'] и [1, 2, 3]. Создайте с их помощью массив 'a'=>1, 'b'=>2, 'c'=>3'.

Решение:

<?php
	$keys = ['a', 'b', 'c'];
	$values = [1, 2, 3];
	var_dump(array_combine($keys, $values));
?>

Работа с array_flip, array_reverse

Для решения задач данного блока вам понадобятся следующие функции: array_flip, array_reverse.

Дан массив 'a'=>1, 'b'=>2, 'c'=>3. Поменяйте в нем местами ключи и значения.

Решение:

<?php
	$arr = ['a'=>1, 'b'=>2, 'c'=>3];
	var_dump(array_flip($arr));
?>

Дан массив с элементами 1, 2, 3, 4, 5. Сделайте из него массив с элементами 5, 4, 3, 2, 1.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	$arr = array_reverse($arr);
	var_dump($arr);
?>

Работа с array_search

Для решения задач данного блока вам понадобятся следующие функции: array_search.

Дан массив ['a', '-', 'b', '-', 'c', '-', 'd']. Найдите позицию первого элемента '-'.

Решение:

<?php
	$arr = ['a', '-', 'b', '-', 'c', '-', 'd'];
	echo array_search('-', $arr);
?>

Дан массив ['a', '-', 'b', '-', 'c', '-', 'd']. Найдите позицию первого элемента '-' и удалите его с помощью функции array_splice.

Решение:

<?php
	$arr = ['a', '-', 'b', '-', 'c', '-', 'd'];
	$pos = array_search('-', $arr);
	array_splice($arr, $pos, 1);
	var_dump($arr);
?>

Работа с array_replace

Для решения задач данного блока вам понадобятся следующие функции: array_replace.

Дан массив ['a', 'b', 'c', 'd', 'e']. Поменяйте элемент с ключом 0 на '!', а элемент с ключом 3 - на '!!'.

Решение:

<?php
	$arr = ['a', 'b', 'c', 'd', 'e'];
	$result = array_replace($arr, [0=>'!', 3=>'!!']));
	var_dump($arr);
?>

Работа с сортировку

Для решения задач данного блока вам понадобятся следующие функции: функции для сортировки,

Дан массив '3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b'. Попробуйте на нем различные типы сортировок.

Решение:

Тип сортировки sort:

<?php
	$arr = ['3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b];
	sort($arr);
	var_dump($arr);
?>

Тип сортировки asort:

<?php
	$arr = ['3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b];
	asort($arr);
	var_dump($arr);
?>

Тип сортировки arsort:

<?php
	$arr = ['3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b];
	arsort($arr);
	var_dump($arr);
?>

Тип сортировки ksort:

<?php
	$arr = ['3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b];
	ksort($arr);
	var_dump($arr);
?>

Тип сортировки krsort:

<?php
	$arr = ['3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b];
	krsort($arr);
	var_dump($arr);
?>

Работа с array_rand

Для решения задач данного блока вам понадобятся следующие функции: array_rand.

Дан массив с элементами 'a'=>1, 'b'=>2, 'c'=>3. Выведите на экран случайный ключ из данного массива.

Решение:

<?php
	$arr = ['a'=>1, 'b'=>2, 'c'=>3];
	echo array_rand($arr);
?>

Дан массив с элементами 'a'=>1, 'b'=>2, 'c'=>3. Выведите на экран случайный элемент данного массива.

Решение:

<?php
	$arr = ['a'=>1, 'b'=>2, 'c'=>3];
	echo $arr[array_rand($arr)];
?>

Работа с shuffle

Для решения задач данного блока вам понадобятся следующие функции: shuffle.

Дан массив $arr. Перемешайте его элементы в случайном порядке.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	shuffle($arr);
	var_dump($arr);
?>

Заполните массив числами от 1 до 25 с помощью range, а затем перемешайте его элементы в случайном порядке.

Решение:

<?php
	$arr = range(1, 25);
	shuffle($arr);
	var_dump($arr);
?>

Создайте массив, заполненный буквами от 'a' до 'z' так, чтобы буквы шли в случайном порядке и не повторялись.

Решение:

<?php
	$arr = range('a', 'z');
	shuffle($arr);
	var_dump($arr);
?>

Сделайте строку длиной 6 символов, состоящую из маленьких английских букв, расположенных в случайном порядке. Буквы не должны повторяться.

Решение:

Первый вариант:

<?php
	$arr = range('a', 'z');
	shuffle($arr);
	echo implode('', array_slice($arr, 0, 6));
?>

Второй вариант:

<?php
	$arr = range('a', 'z');
	shuffle($arr);
	$str = implode('', $arr);
	echo substr($str, 0, 6);
?>

Работа с array_unique

Для решения задач данного блока вам понадобятся следующие функции: array_unique.

Дан массив с элементами 'a', 'b', 'c', 'b', 'a'. Удалите из него повторяющиеся элементы.

Решение:

<?php
	$arr = ['a', 'b', 'c', 'b', 'a'];
	$arr = array_unique($arr);
	var_dump($arr);
?>

Работа с array_shift, array_pop, array_unshift, array_push

Для решения задач данного блока вам понадобятся следующие функции: array_shift, array_pop, array_unshift, array_push.

Дан массив с элементами 1, 2, 3, 4, 5. Выведите на экран его первый и последний элемент, причем так, чтобы в исходном массиве они исчезли.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	echo array_shift($arr); //первый элемент
	echo array_pop($arr); //последний элемент
	var_dump($arr); //проверим, что в массиве они исчезли
?>

Дан массив с элементами 1, 2, 3, 4, 5. Добавьте ему в начало элемент 0, а в конец - элемент 6.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	array_unshift($arr, 0);
	array_push($arr, 6);
	var_dump($arr);
?>

Дан массив с элементами 1, 2, 3, 4, 5, 6, 7, 8. С помощью цикла и функций array_shift и array_pop выведите на экран его элементы в следующем порядке: 18273645.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5, 6, 7, 8];

	$str = '';
	while (count($arr) > 0) {
		$str .= array_shift($arr);
		$str .= array_pop($arr);
	}

	echo $str;
?>

Как оно работает: в цикле от массива отщипывается первый и последний элементы и записываются в $str. При этом сам массив уменьшается и как только он окончательно уменьшится - условие count($arr) > 0 закончит цикл. Способ ресурсоемкий, так как при каждом проходе цикла count вызывается заново, зато изящный.

Работа с array_pad, array_fill, array_fill_keys, array_chunk

Для решения задач данного блока вам понадобятся следующие функции: array_pad, array_fill, array_fill_keys, array_chunk.

Дан массив с элементами 'a', 'b', 'c'. Сделайте из него массив с элементами 'a', 'b', 'c', '-', '-', '-'.

Решение:

<?php
	$arr = ['a', 'b', 'c'];
	$arr = array_pad($arr, 6, '-');
	var_dump($arr);
?>

Заполните массив 10-ю буквами 'x'.

Решение:

<?php
	$arr = array_fill(0, 10, 'x');
	var_dump($arr);
?>

Создайте массив, заполненный целыми числами от 1 до 20. С помощью функции array_chunk разбейте этот массив на 5 подмассивов ([1, 2, 3, 4]; [5, 6, 7, 8] и т.д.).

Решение:

<?php
	$arr = range(1, 20);
	var_dump(array_chunk($arr, 4));
?>

Работа с array_count_values

Для решения задач данного блока вам понадобятся следующие функции: array_count_values.

Дан массив с элементами 'a', 'b', 'c', 'b', 'a'. Подсчитайте сколько раз встречается каждая из букв.

Решение:

<?php
	$arr = ['a', 'a', 'a', 'b', 'b', 'c'];
	var_dump(array_count_values($arr));
?>

Работа с array_map

Для решения задач данного блока вам понадобятся следующие функции: array_map.

Дан массив с элементами 1, 2, 3, 4, 5. Создайте новый массив, в котором будут лежать квадратные корни данных элементов.

Решение:

<?php
	$arr = [1, 2, 3, 4, 5];
	$result = array_map('sqrt', $arr);
	var_dump($result);
?>

Дан массив с элементами '<b>php</b>', '<i>html</i>'. Создайте новый массив, в котором из элементов будут удалены теги.

Решение:

<?php
	$arr = ['<b>php</b>', '<i>html</i>'];
	$result = array_map('strip_tags', $arr);
	var_dump($result);
?>

Дан массив с элементами ' a ', ' b ', ' с '. Создайте новый массив, в котором будут данные элементы без концевых пробелов.

Решение:

<?php
	$arr = [' a ', ' b ', ' с '];
	$result = array_map('trim', $arr);
	var_dump($result);
?>

Работа с array_intersect, array_diff

Для решения задач данного блока вам понадобятся следующие функции: array_intersect, array_diff.

Дан массив с элементами 1, 2, 3, 4, 5 и массив с элементами 3, 4, 5, 6, 7. Запишите в новый массив элементы, которые есть и в том, и в другом массиве.

Решение:

<?php
	$arr1 = [1, 2, 3, 4, 5];
	$arr2 = [3, 4, 5, 6, 7];
	$result = array_intersect($arr1, $arr2);
	var_dump($result);
?>

Дан массив с элементами 1, 2, 3, 4, 5 и массив с элементами 3, 4, 5, 6, 7. Запишите в новый массив элементы, которые не присутствуют в обоих массивах одновременно.

Решение:

<?php
	$arr1 = [1, 2, 3, 4, 5];
	$arr2 = [3, 4, 5, 6, 7];
	$result = array_diff($arr1, $arr2);
	var_dump($result);
?>

Задачи

Дана строка '1234567890'. Найдите сумму цифр из этой строки не используя цикл.

Решение:

<?php
	echo array_sum(str_split('1234567890', 1));
?>               

Создайте массив ['a'=>1, 'b'=2... 'z'=>26] не используя цикл.

Подсказка: используйте функцию range два раза: чтобы сделать массив букв и массив чисел, а затем слейте эти два массива с помощью array_combine.

Решение:

<?php
	$keys = range('a', 'z');
	$values = range(1, 26);
	$arr = array_combine($keys, $values);
	var_dump($arr);
?>               

Создайте массив вида [[1, 2, 3], [4, 5, 6], [7, 8, 9]] не используя цикл.

Подсказка: используйте функцию range, а затем array_chunk.

Решение:

<?php
	$arr = range(1, 9);
	var_dump(array_chunk($arr, 3));
?>               

Дан массив с элементами 1, 2, 4, 5, 5. Найдите второй по величине элемент. В нашем случае это будет 4.

Решение:

<?php
	$arr = [1, 2, 4, 5, 5];
	$newArr = array_unique($arr); //удалим дубли
	rsort($newArr); //посортируем массив по убыванию
	echo $newArr[1]; //возьмем второй элемент
?>