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]   

> Без описания
Alexey_php
Отправлено: 25 Марта, 2017 - 21:50:32
Post Id


Новичок


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


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




Добрый вечер.

Подскажите кто в курсе как реализовать подобное сложение 2 массивов
Посмотрел функции по работе с массивами ни одна не подходит
array_merge не подходит
Перебор через foreach 1 массива с подстановкой 2 массива не подходит, так как ключи могут изменится и не окажется ключей в первом массиве таких как будут у 2 массива, значения пропадут, неужели нету чего то элементарного что бы сложить два массива по ключам + сложить значения
Ниже привожу что я имею и хочу.

1 массив
PHP:
скопировать код в буфер обмена
  1. (
  2.     [1] => Array
  3.         (
  4.             [1] => 150
  5.             [8] => 202
  6.             [9] => 30
  7.         )
  8.  
  9.     [5] => Array
  10.         (
  11.             [1] => 500
  12.         )
  13. )


2 массив
PHP:
скопировать код в буфер обмена
  1. (
  2.     [1] => Array
  3.         (
  4.             [1] => 1.15
  5.             [5] => 2
  6.         )
  7.  
  8.     [5] => Array
  9.         (
  10.             [1] => 3.3
  11.             [9] => 0.3
  12.         )
  13. )


результат нужен вот такой

PHP:
скопировать код в буфер обмена
  1. (
  2.     [1] => Array
  3.         (
  4.             [1] => 151.15
  5.             [5] => 2
  6.             [8] => 202
  7.             [9] => 30
  8.         )
  9.  
  10.     [5] => Array
  11.         (
  12.             [1] => 503.3
  13.             [9] => 0.3
  14.         )
  15. )

(Добавление)
Пробовал вот так

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $merge = $array_1[1] + $array_2[1];//Складываем массивы чтобы убрать дубликаты ключей
  4.  
  5. $keys = array_keys($merge);//Выбираем только ключи массива, значения игнорируем
  6.  
  7. foreach($keys AS $val)
  8. {
  9.         $result[$val] += $array_1[1][$val];    
  10.         $result[$val] += $array_2[1][$val];    
  11. }                              
  12.                        
  13.         [1] => Array
  14.         (
  15.                 [1] => 151.15
  16.                 [5] => 2
  17.                 [8] => 202
  18.                 [9] => 30
  19.         )
  20.  
 
 Top
Alexey_php
Отправлено: 26 Марта, 2017 - 10:19:42
Post Id


Новичок


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


Помог: 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