qwerty14
Новичок
Дата регистрации:
23.04.2014 10:13:11
Сообщений: 3
Не могу разобраться в задании урока "Анонимные функции".
Задание звучит так: 1. Создайте анонимную функцию и поместите её в переменную. Функция должна просто возвращать сумму двух переданных параметров. 2.Вызовите эту анонимную функцию с помощью переменной. 3.Создайте ещё одну функцию, которая принимает массив с чётным количеством элементов в виде чисел, а также принимает вторым параметром функцию. 4.Внутри этой функции перебирайте сразу по 2 элемента в массиве и выводите результат вызова переданной функции, передавая ей по 2 этих элемента. 5.Вызовите функцию из 3-го пункта, передав ей массив с 4 числами, а также функцию из 1-го пункта.
Так вот проблемы начались с 4 пункта, как перебирать сразу по 2 элемента?
Вот что у меня есть:
<?php
$summa = function($a, $b) {
return $a + $b;
};
echo $summa(5, 10).'<br>';
function massiv($arr, $func) {
foreach ($arr as $value) {
}
}
?>
lll
Эксперт
Дата регистрации:
17.06.2016 22:32:32
Сообщений: 134
$array=[2,4,3,5];
function myFunc($arr,$func){
if(!is_array($arr)||count($arr)%2==1) return 'Введите массив с четным количеством элементов!';
$cnt=count($arr);
for($i=0;$i<$cnt;$i+=2){
echo $func($arr[$i],$arr[$i+1]);
}
}
echo myFunc($array,function($x1,$y1){return "$x1 --- $y1<br>";});
elk27ok_myrus
Новичок
Дата регистрации:
11.01.2019 08:49:54
Сообщений: 5
2 Эксперт.
1. вот эту часть:
<code>if(!is_array($arr)||count($arr)%2==1) return 'Введите массив с четным количеством элементов!';</code>
чуть по другому решил - если нечёт, то последнее значение отбрасываем с уведомлением пользователя об этом факте:
<code>
if ((count($arr) % 2) == 0)
{ $arr1 = array_values($arr);
return $arr1;
} else {
//"нужно чётное кол-во элементов массива";
$excessive = array_pop($arr);//убираем последний "лишний" элемент массива
...
echo "из массива (через 'array_pop(\$arr)'
удален последний (лишний) элемент $excessive<br> в массиве осталось элементов: $numb<br>";//сознаемся в содеянном
//дальше - либо через foreach, либо - "красивше" через array_values "собираем" ПРАВИЛЬНЫЙ массив:
/*foreach ($arr as $value) {
$arr1 [] = $value;}*/
$arr1 = array_values($arr);
</code>
2. А теперь мой вопрос: как код форматировать, чтобы он "кодом", а не текстом выглядел? <code>, <pre>, <?php - не помогают...
gezmecom
Новичок
Дата регистрации:
13.01.2020 13:49:14
Сообщений: 2
спасибо
Долго сидел пока понял с вызовами