Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сумма нечетных элементов массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: сумма нечетных элементов массива
wolf0022
Отправлено: 19 Октября, 2014 - 14:00:28
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




есть 28 элементов массива, надо вывести только нечетные, и вывести их сумму
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $numbers = range(1, 28);
  3. shuffle($numbers);
  4. while (list(, $number) = each($numbers)) { //list --  Присвоить переменным из списка значения подобно массиву
  5.     echo "$number ";
  6. }
  7. echo "ne chetnie ilementi massiva:" . "<br>";
  8. foreach ($numbers as $key => $value) {
  9.     if (($key + 1) % 2 != 0) {
  10.         echo $value . '<br />';
  11. }}
  12. {$value+=$value;}  // знаю что неверно но это всё что я смог((
  13. echo ($value);
  14. ?>

в итоге выводит последний элемент массива+последний элемент массива, а нужно сумму value
 
 Top
teddy
Отправлено: 19 Октября, 2014 - 14:06:31
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




PHP:
скопировать код в буфер обмена
  1. $odd = array_filter($arr, function($val){
  2.     return $val % 2 != 0;
  3. });
  4.  
  5. foreach($odd as $val){
  6.     echo $val.'<br />';
  7. }
  8.  
  9. echo 'Сумма нечетных чисел: '.array_sum($odd);

$arr - Ваш массив.

(Отредактировано автором: 19 Октября, 2014 - 14:06:55)

 
 Top
wolf0022
Отправлено: 19 Октября, 2014 - 14:18:20
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




teddy пишет:
PHP:
скопировать код в буфер обмена
  1. $odd = array_filter($arr, function($val){
  2.     return $val % 2 != 0;
  3. });
  4.  
  5. foreach($odd as $val){
  6.     echo $val.'<br />';
  7. }
  8.  
  9. echo 'Сумма нечетных чисел: '.array_sum($odd);

$arr - Ваш массив.


foreach($odd as $val){
echo $val.'<br />'; это как я понял выводит нечет числа в массиве, и складывает их а мне надо нечетные индексы массива то есть 1,3,5,7 и тд элементы массива сложить, их вывод у меня есть а вот как сложить..
 
 Top
teddy
Отправлено: 19 Октября, 2014 - 14:24:12
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Только выводит. Складывается с помощью array_sum.
Если нужны индексы а не значения, это нужно было как бы отметить изначально...

Схема остается прежней, только ключи из массива выбираются с помощью array_keys и все. Если нужно сохранить и значения тогда array_flip.

http://php.net/manual/ru/function.array-keys.php
http://php.net/manual/ru/function.array-flip.php
(Добавление)
Если же нужно получить значения которым соответствуют нечетные индексы то вот ещё пример

Спойлер (Отобразить)
 
 Top
wolf0022
Отправлено: 19 Октября, 2014 - 14:44:54
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




teddy пишет:
Только выводит. Складывается с помощью array_sum.
Если нужны индексы а не значения, это нужно было как бы отметить изначально...

Схема остается прежней, только ключи из массива выбираются с помощью array_keys и все. Если нужно сохранить и значения тогда array_flip.

http://php.net/manual/ru/function.array-keys.php
http://php.net/manual/ru/function.array-flip.php
(Добавление)
Если же нужно получить значения которым соответствуют нечетные индексы то вот ещё пример

Спойлер (Отобразить)


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $numbers = range(1, 28);
  3. shuffle($numbers);
  4. while (list(, $number) = each($numbers)) { //list --  Присвоить переменным из списка значения подобно массиву
  5.     echo "$number ";
  6. }
  7. echo "ne chetnie ilementi massiva:" . "<br>";
  8. foreach ($numbers as $key => $value) {
  9.     if (($key + 1) % 2 != 0) {
  10.         echo $value . '<br />';
  11. }}
  12.  
  13. $numbers = array_flip($numbers);
  14. echo $numbers ;
  15. echo 'Сумма нечетных чисел: '.array_sum($numbers);
  16. ?>

сделал так выводит всегда одну и тужу цифру, помогите кодом пожалуйста)
 
 Top
teddy
Отправлено: 19 Октября, 2014 - 15:16:44
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Не обязательно копировать мое сообщение в своих постах Улыбка
Я б помог но похоже не понимаю что Вам нужно...
Объясните ещё раз, более внятно...
 
 Top
wolf0022
Отправлено: 19 Октября, 2014 - 15:19:58
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




нужно сложить значения нечетных индексов то есть массив (1,3,2,5,8,4,7)
нечетные 1,2,8,7
их сумма 18
 
 Top
teddy
Отправлено: 19 Октября, 2014 - 15:31:17
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Похоже я понял..)) Индексы вообще то считаются с нуля, а не с 1.

PHP:
скопировать код в буфер обмена
  1. $numbers = array(1,3,2,5,8,4,7);
  2.  
  3. $result = array();
  4. $numCnt = count($numbers);
  5.  
  6. for($i = 0, $j = 1; $i < $numCnt; $i++, $j++){
  7.        
  8.     if($j % 2 != 0)
  9.         $result[] = $numbers[$i];
  10. }
  11.  
  12. echo implode(', ', $result).'<br />';
  13. echo 'Сумма '.array_sum($result);

Сейчас я надеюсь все правильно?))
 
 Top
wolf0022
Отправлено: 19 Октября, 2014 - 16:22:25
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




спасибо большое мил человек))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB