Примеры решения задач
Задача
Задача. Создайте массив, заполненный числами от 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
Дан массив $arr. Подсчитайте количество элементов этого массива.
Дан массив $arr. С помощью функции count выведите последний элемент данного массива.
Работа с in_array
Дан массив с числами. Проверьте, что в нем есть элемент со значением 3.
Работа с array_sum и array_product
Дан массив [1, 2, 3, 4, 5]. Найдите сумму элементов данного массива.
Дан массив [1, 2, 3, 4, 5]. Найдите произведение (умножение) элементов данного массива.
Дан массив $arr. С помощью функций array_sum и count найдите среднее арифметическое элементов (сумма элементов делить на их количество) данного массива.
Работа с range
Создайте массив, заполненный числами от 1 до 100.
Создайте массив, заполненный буквами от 'a' до 'z'.
Создайте строку '1-2-3-4-5-6-7-8-9' не используя цикл.
Подсказка: используйте функции range и implode.
Найдите сумму чисел от 1 до 100 не используя цикл.
Найдите произведение чисел от 1 до 10 не используя цикл.
Работа с array_merge
Даны два массива: первый с элементами 1, 2, 3, второй с элементами 'a', 'b', 'c'. Сделайте из них массив с элементами 1, 2, 3, 'a', 'b', 'c'.
Работа с array_slice
Дан массив с элементами 1, 2, 3, 4, 5. С помощью функции array_slice создайте из него массив $result с элементами 2, 3, 4.
Работа с array_splice
Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice преобразуйте массив в [1, 4, 5].
Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice запишите в новый массив элементы [2, 3, 4].
Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice сделайте из него массив [1, 2, 3, 'a', 'b', 'c', 4, 5].
Дан массив [1, 2, 3, 4, 5]. С помощью функции array_splice сделайте из него массив [1, 'a', 'b', 2, 3, 4, 'c', 5, 'e'].
Работа с array_keys, array_values, array_combine
Дан массив 'a'=>1, 'b'=>2, 'c'=>3'. Запишите в массив $keys ключи из этого массива, а в $values – значения.
Даны два массива: ['a', 'b', 'c'] и [1, 2, 3]. Создайте с их помощью массив 'a'=>1, 'b'=>2, 'c'=>3'.
Работа с array_flip, array_reverse
Дан массив 'a'=>1, 'b'=>2, 'c'=>3. Поменяйте в нем местами ключи и значения.
Дан массив с элементами 1, 2, 3, 4, 5. Сделайте из него массив с элементами 5, 4, 3, 2, 1.
Работа с array_search
Дан массив ['a', '-', 'b', '-', 'c', '-', 'd']. Найдите позицию первого элемента '-'.
Дан массив ['a', '-', 'b', '-', 'c', '-', 'd']. Найдите позицию первого элемента '-' и удалите его с помощью функции array_splice.
Работа с array_replace
Дан массив ['a', 'b', 'c', 'd', 'e']. Поменяйте элемент с ключом 0 на '!', а элемент с ключом 3 - на '!!'.
Работа с сортировку
Дан массив '3'=>'a', '1'=>'c', '2'=>'e', '4'=>'b'. Попробуйте на нем различные типы сортировок.
Работа с array_rand
Дан массив с элементами 'a'=>1, 'b'=>2, 'c'=>3. Выведите на экран случайный ключ из данного массива.
Дан массив с элементами 'a'=>1, 'b'=>2, 'c'=>3. Выведите на экран случайный элемент данного массива.
Работа с shuffle
Дан массив $arr. Перемешайте его элементы в случайном порядке.
Заполните массив числами от 1 до 25 с помощью range, а затем перемешайте его элементы в случайном порядке.
Создайте массив, заполненный буквами от 'a' до 'z' так, чтобы буквы шли в случайном порядке и не повторялись.
Сделайте строку длиной 6 символов, состоящую из маленьких английских букв, расположенных в случайном порядке. Буквы не должны повторяться.
Работа с array_unique
Дан массив с элементами 'a', 'b', 'c', 'b', 'a'. Удалите из него повторяющиеся элементы.
Работа с array_shift, array_pop, array_unshift, array_push
Дан массив с элементами 1, 2, 3, 4, 5. Выведите на экран его первый и последний элемент, причем так, чтобы в исходном массиве они исчезли.
Дан массив с элементами 1, 2, 3, 4, 5. Добавьте ему в начало элемент 0, а в конец - элемент 6.
Дан массив с элементами 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
Дан массив с элементами 'a', 'b', 'c'. Сделайте из него массив с элементами 'a', 'b', 'c', '-', '-', '-'.
Заполните массив 10-ю буквами 'x'.
Создайте массив, заполненный целыми числами от 1 до 20. С помощью функции array_chunk разбейте этот массив на 5 подмассивов ([1, 2, 3, 4]; [5, 6, 7, 8] и т.д.).
Работа с array_count_values
Дан массив с элементами 'a', 'b', 'c', 'b', 'a'. Подсчитайте сколько раз встречается каждая из букв.
Работа с array_map
Дан массив с элементами 1, 2, 3, 4, 5. Создайте новый массив, в котором будут лежать квадратные корни данных элементов.
Дан массив с элементами '<b>php</b>', '<i>html</i>'. Создайте новый массив, в котором из элементов будут удалены теги.
Дан массив с элементами ' a ', ' b ', ' с '. Создайте новый массив, в котором будут данные элементы без концевых пробелов.
Работа с array_intersect, array_diff
Дан массив с элементами 1, 2, 3, 4, 5 и массив с элементами 3, 4, 5, 6, 7. Запишите в новый массив элементы, которые есть и в том, и в другом массиве.
Дан массив с элементами 1, 2, 3, 4, 5 и массив с элементами 3, 4, 5, 6, 7. Запишите в новый массив элементы, которые не присутствуют в обоих массивах одновременно.
Задачи
Дана строка '1234567890'. Найдите сумму цифр из этой строки не используя цикл.
Создайте массив ['a'=>1, 'b'=2... 'z'=>26] не используя цикл.
Подсказка: используйте функцию range два раза: чтобы сделать массив букв и массив чисел, а затем слейте эти два массива с помощью array_combine.
Создайте массив вида [[1, 2, 3], [4, 5, 6], [7, 8, 9]] не используя цикл.
Подсказка: используйте функцию range, а затем array_chunk.
Дан массив с элементами 1, 2, 4, 5, 5. Найдите второй по величине элемент. В нашем случае это будет 4.