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
Форумы портала PHP.SU :: Версия для печати :: Сложить два массива по ключам и значениям
Форумы портала PHP.SU » » Вопросы новичков » Сложить два массива по ключам и значениям

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

1. Alexey_php - 25 Марта, 2017 - 21:50:32 - перейти к сообщению
Добрый вечер.

Подскажите кто в курсе как реализовать подобное сложение 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.  
2. Alexey_php - 26 Марта, 2017 - 10:19:42 - перейти к сообщению
есть ли элементарные функции для этого, или нужно мудрить, вроде просто слить все одинаковые ключи и приплюсовать все одинаковые значения по ключам, или как ?

 

Powered by ExBB FM 1.0 RC1