За последние 24 часа нас посетили 22426 программистов и 1027 роботов. Сейчас ищут 656 программистов ...

Требуется помощь опытных экспертов

Тема в разделе "Прочие вопросы по PHP", создана пользователем Sasha13577, 22 май 2020.

  1. Sasha13577

    Sasha13577 Новичок

    С нами с:
    22 май 2020
    Сообщения:
    4
    Симпатии:
    0
    Помогите разобраться с функцией.
    Суть ее такова : функция, с одним параметром - массив позиций в корзине. Функция должна посчитать и вернуть сколько всего в корзине товаров (в одной позиции корзины может быть несколько товаров - поле quantity).

    PHP:
    1. <?php
    2. $basket = [
    3.     [
    4.         'position' => 'книга по пхп',
    5.         'quantity' => 1,
    6.     ],
    7.     [
    8.         'position' => 'мышь',
    9.         'quantity' => 12,
    10.     ],
    11. ];
    12.  
    13. $total = 0;
    14.  
    15. function countBasket($basket) {
    16.     foreach ($basket as $value) {
    17.         $total += $value['quantity'];
    18.         echo $total;
    19.     }
    20. }
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. <?php
    2. $basket = [
    3.     [
    4.         'position' => 'книга по пхп',
    5.         'quantity' => 1,
    6.     ],
    7.     [
    8.         'position' => 'мышь',
    9.         'quantity' => 12,
    10.     ],
    11. ];
    12.  
    13. $summ = array_sum( array_column( $basket, 'quantity' ) );
    14.  
    15. print_r( $summ );
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    PHP:
    1. function quantity(array $basket): int
    2. {
    3.     return array_reduce($basket, fn($c, $i) => $c + $i['quantity']);
    4. }
     
  4. Sasha13577

    Sasha13577 Новичок

    С нами с:
    22 май 2020
    Сообщения:
    4
    Симпатии:
    0
    Спвсибо!
    --- Добавлено ---
    Код (Text):
    1. $basket = [
    2.   [
    3.     'position' => 'книга',
    4.     'quantity' => 1,
    5.   ],
    6.   [
    7.     'position' => 'мышь',
    8.     'quantity' => 12,
    9.   ],
    10. ];
    11.  
    12. function countBasket($basket){
    13.   $total = 0;
    14.   foreach ($basket as &$value) {
    15.       $total += $value['quantity'];
    16.   }
    17.   return $total;
    18. }
    19.  
    20. echo countBasket($basket);
     
  5. Sasha13577

    Sasha13577 Новичок

    С нами с:
    22 май 2020
    Сообщения:
    4
    Симпатии:
    0
    Artur_hopf не подскажите где ошибка?
    Внутри этой функции
    Код (Text):
    1. function task17($n) {
    2.   $sum = 0;
    3.   if (($n % 3) == 0) {
    4.     echo $n . "<br>";
    5.   } elseif {
    6.     (($n % 5) == 0)
    7.     $sum += $n;
    8.   } else {
    9.     (($n / 5) == 0 && ($n / 3) == 0)
    10.     --$sum;
    11.   }
    12.   return $sum;
    13. }
    нужно сделать следующее:

    1. Заведите переменную: $sum = 0; - сумма чисел делящихся на 5
    2. В цикле от 0 до $n (включая) сделайте следующее (должно выполнится только одно из условий):

    - если число делится без остатка на 3 – выведите это число, с помощью оператора echo (каждое число на отдельной строке)
    - если число делится без остатка на 5 – прибавьте это число к переменной $sum
    - если число делится и на 5 и на 3 – то вычтите из $sum единицу

    Функция должна вернуть сумму в качестве результата своей работы.
     
  6. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. <?php
    2.  
    3. function task17($n)
    4. {
    5.     //1. Заведите переменную: $sum = 0;
    6.     $sum = 0;
    7.  
    8.     //2. В цикле от 0 до $n (включая)
    9.  
    10.     for ($i = 0; $i <= $n; $i++)
    11.     {
    12.         // сделайте следующее (должно выполнится только одно из условий):
    13.         //- если число делится без остатка на 3 – выведите это число, с помощью оператора echo (каждое число на отдельной строке)
    14.  
    15.         if (($i % 3) == 0)
    16.         {
    17.             echo $i . "<br>";
    18.         }
    19.  
    20.         //- если число делится без остатка на 5 – прибавьте это число к переменной $sum
    21.  
    22.         if (($i % 5) == 0)
    23.         {
    24.             $sum += $i;
    25.         }
    26.  
    27.         //- если число делится и на 5 и на 3 – то вычтите из $sum единицу
    28.  
    29.         if ((($i % 3) == 0) && (($i % 5) == 0) )
    30.         {
    31.             $sum--;
    32.         }
    33.     }
    34.  
    35.     //Функция должна вернуть сумму в качестве результата своей работы.
    36.  
    37.     return $sum;
    38. }
    39.  
    40. echo task17(100);
     
  7. Sasha13577

    Sasha13577 Новичок

    С нами с:
    22 май 2020
    Сообщения:
    4
    Симпатии:
    0
  8. pro100blich

    pro100blich Активный пользователь

    С нами с:
    10 янв 2019
    Сообщения:
    15
    Симпатии:
    0
    а если взять 90, то как? Ответ то будет 849, а должен 854