Занимательные задачи PHP
338 subscribers
1 photo
15 links
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят по будням в 14.00.
Download Telegram
Задача 147
Проверка отсортированности массива

Дан массив с числами. Проверьте, что элементы этого массива идут по возрастанию или убыванию чисел.
Задача 148
Удаление элемента по значению

Сделайте функцию, которая будет удалять элементы из массива по заданному значению.
Задача 149
Перемешать массив

Дан массив. Перетосуйте его элементы случайным образом, не пользуясь стандартной функцией shuffle.
Задача 150
Аналог array_merge_recursive

В PHP есть функция array_merge_recursive, которая корректно сливает массивы, даже есть у них есть одинаковые ключи. Создайте свою функцию, которая будет реализовывать такое поведение (функция должна работать с любым количеством массивов).
Задача 151
Функция array_splice_assoc

PHP функция array_splice не работает с ассоциативными массивами. Реализуйте свою функцию array_splice_assoc, которая будет делать это.
Задача 152
Аналог array_reverse

Напишите функцию, которая будет переставлять элементы массива в обратном порядке (аналог функции array_reverse.)
Задача 153
Аналог array_unique

Напишите функцию, которая будет удалять повторяющиеся элементы одномерного массива (аналог функции array_unique).
Задача 154
Функция implode с ключами

Стандартная функция implode работает только с элементами массива. Напишите свою функцию kimplode, которая будет сливать в строку ключи массива.
Задача 155
Русский псевдотекст

Lorem ipsum - это генератор псевдолатыни для заполнения страниц сайта. Напишите функцию, которая будет генерировать русский псевдотекст.
Задача 156
Сумма целых чисел

Найдите сумму целых чисел от 1 до 1000000 самым незатратным по ресурсам и самым быстро работающим способом.
Задача 157
Промежуток времени в секунды

Сделайте функцию, которая будет принимать промежуток времени в формате '1 день 3 часа 10 минут 21 секунда', и возвращать количество секунд, соответствующего указанному промежутку.
Задача 158
Найти числа

Найдите все числа от 1 до 1000000, которые делятся на все числа от 1 до 9.
Задача 159
Слияние чередование

Даны два массива вида:
[1, 2, 3] и ['a', 'b', 'c'].

Слейте их вместе таким образом:
[1, 'a', 2, 'b', 3, 'c'].
Задача 160
Знак зодиака

Сделайте функцию, которая принимает дату в формате '2014-12-31', а возвращает знак зодиака в этот день.
Задача 161
Числа Фибоначчи

Числа Фибоначчи представляют собой последовательность, в которой первые два числа равны 0 и 1, а каждое последующее число равно сумме двух предыдущих чисел. Получите первые N чисел Фибоначчи.
Задача 162
Размер папки

Дана папка с файлами и подпапками. Получите размер этой папки в мегабайтах.
Задача 163
Домен из урла

Дан некоторый URL:
$url = 'http://test.com/dir1/dir2/dir3/page.html';

Получите из него имя домена:
'test.com';
Задача 164
Страница из урла

Дан некоторый URL: $url = 'http://test.com/dir1/dir2/dir3/page.html';

Получите из него имя страницы:
'page.html';
Задача 165
Папки из урла

Дан некоторый URL: $url = 'http://test.com/dir1/dir2/dir3/page.html';

Получите из него папки в виде массива:
['dir1', 'dir2', 'dir3']
Задача 166
Селекты с датой

Сгенерируйте три селекта. В первом селекте выведите дни месяца от 1 до 31, во втором - названия месяцев года, а в третьем - года за предыдущие и следующие 10 лет. Сделайте так, чтобы по умолчанию в селектах была выбрана текущая дата.
Задача 167
Активация меню

Дано меню со ссылками. Покрасьте в красный цвет ту ссылку, адрес которой совпадает с URL из адресной строки браузера.