За последние 24 часа нас посетили 20584 программиста и 1102 робота. Сейчас ищет 361 программист ...

Напишите функцию, которая принимает массив, а возвращает сумму его элементов

Тема в разделе "PHP для новичков", создана пользователем webxmm, 18 окт 2017.

  1. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Совершенно верно, спасибо. Что-то вообще про них забыл...
    @mkramer и вам спасибо, что напомнили.
     
  2. laszlopv

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

    С нами с:
    26 фев 2017
    Сообщения:
    244
    Симпатии:
    40
    Теперь лучше?:(

    PHP:
    1. $test = array (5,'a',5);
    2.  
    3. function summ_array ($array){
    4.     $rezult = false;
    5.  
    6.     if (is_array($array)){
    7.         foreach ($array as $value){
    8.             if (is_numeric($value)){
    9.                $rezult = $rezult + $value;
    10.             }
    11.             else {
    12.                 $rezult=false;
    13.                 break;
    14.             }
    15.         }
    16.     }
    17.     return $rezult;
    18. }
    19.  
    20.  
    21. if (summ_array($test)==false){
    22.     print 'false';}
    23. else{
    24.     print summ_array($test);
    25. }
     
    #27 laszlopv, 19 окт 2017
    Последнее редактирование: 19 окт 2017
  3. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    зачем два раза ? просто один раз после проверки на массив верните значение
     
    laszlopv нравится это.
  4. laszlopv

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

    С нами с:
    26 фев 2017
    Сообщения:
    244
    Симпатии:
    40
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Да, только никак не пойму, почему ты $result через "z" пишешь, хотя я везде через "s" писал. Думаешь, я ошибку постоянно делал? :)
     
    laszlopv нравится это.
  6. laszlopv

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

    С нами с:
    26 фев 2017
    Сообщения:
    244
    Симпатии:
    40
    Я даже не задумался об этом, это мой инглиш дает о себе знать.
     
  7. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    array_sum() совсем нельзя..
     
    laszlopv нравится это.
  8. laszlopv

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

    С нами с:
    26 фев 2017
    Сообщения:
    244
    Симпатии:
    40
    Он не подходит по условию задания.
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Ну это же явно учебное задание. Почему бы не научиться самому суммировать массив?
     
  10. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Не осмысленное бесполезное учебное задание.
     
  11. webxmm

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

    С нами с:
    4 мар 2017
    Сообщения:
    133
    Симпатии:
    4
    Напишите осмысленное, буду благодарен
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Как и множество других учебных задач. Тут как бы задача не array_sum заюзать, а научить человека работать с циклами, условиями, прерываниями. Так что задача как задача.
     
    ZlobnyKolob нравится это.
  13. zorinalexey59292

    zorinalexey59292 Новичок

    С нами с:
    2 окт 2016
    Сообщения:
    22
    Симпатии:
    1



    function sum($arr){
    return count($arr);
    }
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    С каких пор сумма элементов массива и количество элементов в нём - это одно и то же?
     
  15. pro100blich

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

    С нами с:
    10 янв 2019
    Сообщения:
    15
    Симпатии:
    0
    Если еще актуально.
    PHP:
    1. <?php      
    2. $arr = [5,5,17];
    3. $arr_a = [5,5,4,88];
    4. $arr_b = [5.3,8.6];
    5. $arr_c = [];
    6. function summ(&$arr){
    7. $arr_sum = 0;
    8. if (!is_array($arr)) {
    9.     echo 'Некорректный массив!';
    10.     return;
    11. }
    12. if (count($arr)==0) {
    13.     echo 'Некорректный массив!';
    14.     return;
    15. }
    16. if (is_numeric($arr)) {
    17.     echo 'Некорректный массив!';
    18.     return;
    19. }
    20. for ($i=0; $i <count($arr) ; $i++) {
    21.     $arr_sum += $arr[$i];
    22. }
    23. echo 'Сумма элементов массива равна = '.$arr_sum;
    24. }
    25. echo summ($arr).'<br>';
    26. echo summ($arr_a).'<br>';
    27. echo summ($arr_b).'<br>';
    28. echo summ($arr_c).'<br>';
    29.  
    30.     ?>
     
  16. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @pro100blich, на троечку(если с правками).
     
  17. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    @pro100blich, в условии задачи было "возвращает", а не "выводит"
    --- Добавлено ---
    Ну и is_numeric не принимает массивы
     
  18. pro100blich

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

    С нами с:
    10 янв 2019
    Сообщения:
    15
    Симпатии:
    0
    @mkramer, "а возвращает сумму его элементов". Может я что то не догоняю. Возвращает и выводит это как бы одно и тоже. 5+5 возвратит нам 10 или же, сумма 5+5 выведет на экран 10. Конечный результат остается 10. Так же и тут. Если не прав то поподробнее.
    --- Добавлено ---
    @Valick моно сразу ошибки, что бы их в дальнейшем не было.
     
  19. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    В контексте функции - совсем разные вещи. Возвратить - значит использовать return, и позволить вызывающему коду делать с результатом работы функции, что заблагорассудится.
     
  20. pro100blich

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

    С нами с:
    10 янв 2019
    Сообщения:
    15
    Симпатии:
    0
    @mkramer все понял
    спасибо