Урок 8. Комбинации стандартных функций в PHP. Практика
В задачах нужно применить комбинацию стандартных функций PHP из предыдущих уроков.
Дан массив с числами. Найдите среднее арифметическое его элементов (сумму элементов делить на их количество), не используя цикл.
<?$a=[1,2,3,4,5];echo array_sum($a)/count($a)?>
3.
Найдите сумму чисел от 1 до 8 не используя цикл.
<?echo array_sum(range(1,8))?>
36.
Выведите числа от 1 до 8 не используя цикл.
<?$a=range(1,8);echo implode($a,'; ')?>
1; 2; 3; 4; 5; 6; 7; 8.
Заполните массив 8-ю иксами не используя цикл (функция array_fill).
<?$a=array_fill(0,8,'x');print_r($a)?>
Array ( [0] => x [1] => x [2] => x [3] => x [4] => x [5] => x [6] => x [7] => x ) .
Заполните массив 8-ю случайными числами от 1 до 8 так, чтобы они не повторялись, не используя цикл (функции range и shuffle).
<?$a=range(1,8);shuffle($a);print_r($a)?>
Array ( [0] => 7 [1] => 3 [2] => 8 [3] => 5 [4] => 4 [5] => 6 [6] => 1 [7] => 2 ) .
Найдите 4!, не используя цикл (функции range и array_product).
<?$n=4;/*найдем 4!*/$a=range(1,$n);echo array_product($a)?>
24.
Дано число. Найти сумму цифр этого числа, не используя цикл (функции split и array_sum).
<?$n=123;$a=str_split($n,1);echo array_sum($a)?>
6.
Дана строка. Сделайте заглавным последний символ этой строки, не используя цикл.
Перевернуть строку, используя функцию ucfirst, затем перевернуть строку обратно:
<?$s='abcde';$s=strrev($s);$s=ucfirst($s);$s=strrev($s);echo$s?>
abcdE.
Дан массив с числами. Получите из него массив с квадратными корнями этих чисел, не используя цикл (функции array_map и sqrt).
<?$a=[1,4,5,7,9];$r=array_map('sqrt',$a);print_r($r)?>
Array ( [0] => 1 [1] => 2 [2] => 2.2360679774998 [3] => 2.6457513110646 [4] => 3 ) .
Заполните массив числами от 1 до 26 так, чтобы ключами этих чисел были буквы английского алфавита ['a'=>1,'b'=>2,…], не используя цикл.
<?$k=range('a','z');$e=range(1,26);$a=array_combine($k,$e);print_r($a)?>
Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 4 [e] => 5 [f] => 6 [g] => 7 [h] => 8 [i] => 9 [j] => 10 [k] => 11 [l] => 12 [m] => 13 [n] => 14 [o] => 15 [p] => 16 [q] => 17 [r] => 18 [s] => 19 [t] => 20 [u] => 21 [v] => 22 [w] => 23 [x] => 24 [y] => 25 [z] => 26 ) .
Внимание, как только число 26 не совпадает с количеством букв в английском алфавите, начинаются проблемы:
<?$k=range('a','z');$e=range(1,18);$a=array_combine($k,$e);print_r($a)?>
Warning: array_combine(): Both parameters should have an equal number of elements in /home/vhosts/podolsk.xp3.biz/kniga/kniga011/08.php on line 37
.
<?$k=range('a','z');$e=range(1,38);$a=array_combine($k,$e);print_r($a)?>
Warning: array_combine(): Both parameters should have an equal number of elements in /home/vhosts/podolsk.xp3.biz/kniga/kniga011/08.php on line 39
.
Дана строка с числами '1234567890'. Найдите сумму пар чисел 12+34+56+78+90, не используя цикл (функции str_split и array_sum).
<?$s='1234567890';$a=str_split($s,2);$r=array_sum($a);echo$r?>
270.