Функции в PHP - Задачи с функциями
Функции - Задачи
Задача №1
Функция принимает массив, содержащий информацию о купленных товарах.
Каждый товар описывается тремя характеристиками: название товара, цена, количество.
Таким образом функция принимает многомерный массив.
Функция должна выдать общую сумму покупок и общее количество товара.
Задача №2
Написать функцию, которая принимает массив, удаляет из него элементы меньше нуля и возвращает этот массив.
PHP-код
// Задача №1
// п.1 Массив продуктов
$arProducts = [
["name"=>"Телевизор", "price"=>400, "quantity"=>1],
["name"=>"Телефон", "price"=>300, "quantity"=>3],
["name"=>"Кроссовки", "price"=>150, "quantity"=>2]
];
// п.3 Вызываем функцию и результат ее работы (массив) -> заносим в другой массив
$arBasket = getBasket($arProducts);
// п.4 Выводим информацию на экран
echo "Задача №1<br>";
echo "Общая сумма покупок: ".$arBasket["sumPrice"]."<br> Общее количество товара: ".$arBasket["sumQuantity"];
// п.2 Функция с одним параметром
// Она принимает исходный массив и возвращает массив с нужными данными
function getBasket($arProd){
$sumPrice = $sumQuantity = 0;
$arReturn = [];
for($i=0; $i<count($arProd); $i++) {
$sumPrice += $arProd[$i]["price"]*$arProd[$i]["quantity"];
$sumQuantity += $arProd[$i]["quantity"];
}
$arReturn["sumPrice"] = $sumPrice;
$arReturn["sumQuantity"] = $sumQuantity;
return $arReturn;
}
// Задача №2
// п.1 - Исходный массив
$arNumbers = [2, -10, -2, 4, 5, 20, 0, 1.6, -95, 1];
echo "<p>";
// п.2 - Массив, в который будет передаваться результат работы функции
$newArNumbers =[];
// п.4 - Заносим в $newArNumbers результат работы функции
$newArNumbers = deleteLessZero($arNumbers);
echo "Задача №2<br>";
print_r($newArNumbers);
// п.3 - Функция - возвращает массив из чисел больше 0
function deleteLessZero($arNumb){
$moreZero = [];
// Для метода foreach указано что мы работаем именно с массивом (array)
// Без этого код тоже работает, но выдает ошибку - Invalid argument supplied for foreach()
foreach((array)$arNumb as $key=>$value){
if ($value >= 0){
$moreZero[] = $value;
}
}
return $moreZero;
}
Результат
Задача №1
Общая сумма покупок: 1600
Общее количество товара: 6
Задача №2
Array ( [0] => 2 [1] => 4 [2] => 5 [3] => 20 [4] => 0 [5] => 1.6 [6] => 1 )