Задачник по PHP (с решениями). Роман Игоревич Григорьев
Чтение книги онлайн.
Читать онлайн книгу Задачник по PHP (с решениями) - Роман Игоревич Григорьев страница 4
Задача «Cтранный массив»*:
Создайте массив вида [1, [2], [[3]], [[[4]]] ], вместо 4 может быть любое целое
значение. К примеру, если 5 – тогда будет массив [1, [2], [[3]], [[[4]]], [[[[5]]]] ].
1. <?php
2. function getMultiArray($level) {
3. $result = $level;
4. for ($i = 1; $i < $level; $i++) {
5. $result = [$result];
6. }
7. return $result;
8. }
9.
10. function strange($value) {
11. $result = [];
12. for ($i = 1; $i <= $value; $i++) {
13. $result[$i] = getMultiArray($i);
14. }
15. return $result;
16.
}
17.
18. print_r(strange(5));
19.
?>
Задача Хитрое слияние массивов*
1: Напишите функцию, которая будет сливать два массива таким образом: из, к
примеру, [1, 2, 3] и ['a', 'b', 'c'] она сделает [1, 'a', 2, 'b', 3, 'c'].
2: Сделайте аналогичную функцию, которая параметрами будет принимать
не два массива, а произвольное количество (пусть функция параметром принимает
двухмерный массив, где его подмассивы – это то, что мы будем сливать).
1) <?php
2) function array_strange_merge(…$arrays) {
3) $maxLength = 0;
4) foreach ($arrays as $array) {
5) $maxLength = max(count($array), $maxLength);
6) }
7) $result = [];
8) for ($i = 0; $i < $maxLength; $i++) {
9) foreach ($arrays as $array) {
10) if (isset($array[$i])) {
11) $result[] = $array[$i];
12) }
13) };
14) }
15) return $result;
16)
}
17)
18) print_r(array_strange_merge([1,2,3], ['a','b','c','d']));
19)
?>
Дан массив вида [1, ' , 2, ' , ' , 3] – то есть в нем есть пустые строки. Удалите все
такие элементы из этого массива.*
1. <?php
2. $unCleanList = [1, ' , 2, ' , ' , 3];
3. $filteredList = array_filter($unCleanList);
4. var_dump($filteredList);
5. array(3) {
6. [0]=>
7. int(1)
8. [2]=>
9. int(2)
10.
[5]=>
11.
int(3)
12.
}
13.
?>
Напишите функцию, которая корректно будет складывать часы и минуты.
Примеры: на вход функции подается такое – 1ч20мин+50мин – в результатте функция
выведет 2ч10мин.*** (Задача решается разными способами, приведите пример
одного из них)
1. <?php
2. function h2s($h) {
3. $h = $h/3600 % 24;
4. $h = $h % 10 ? "0".$h : $h;
5. $h = $h == 0 ? $h = "00" : $h;
6. return $h;
7. }
8. function m2s($m) {
9. $m = $m/60 % 60;
10.
$m = $m % 10 ? "0".$m : $m;
11.
$m = $m == 0 ? $m = "00" : $m;
12.
return $m;
13.