Сложение значений ассоциативного массива по одинаковому ключу

Real1tySucks

Новичок
Добрый день. Есть массив по типу
PHP:
Array
(
    [2] => 2
    [3] => 2
    [10] => 1
    [21] => 1
    [53] => 60
)
Задача - получить массив типа
PHP:
Array
(
    [5] => 2
    [31] => 1
    [53] => 60
)
Заранее спасибо за подсказку.
 

Andkorol

Новичок
Сложение значений ассоциативного массива по одинаковому ключу
У тебя в примере всё наоборот – ты складываешь ключи по одинаковым значениям.
Определись, что именно нужно.

PS: и массив какой-то не особо ассоциативный...
 

AmdY

Пью пиво
Команда форума
надеюсь никто не додумается сунуть готовый ответ.

Real1tySucks
а где именно проблема, как пробовал делать. покажи код....
 

Real1tySucks

Новичок
надеюсь никто не додумается сунуть готовый ответ.

Real1tySucks
а где именно проблема, как пробовал делать. покажи код....
Проблема именно в том, что не могу продумать алгоритм, ну кроме самого тупого, но это за гранью добра и зла =))
 

Real1tySucks

Новичок
То идея, но она почти оффтопик - если всё совсем плохо - сувать данные в таблицу в мускуле, и выбирать по GROUP BY, но это полный бред
 

Real1tySucks

Новичок
Проблему решил на уровно забивки массива по принципу
PHP:
$sortedArray=array();
foreach ($arr as $top)
{
    list ($gcont,$gto,$officeid) = explode("|",$top);
    if (array_key_exists($officeid,$sortedArray))
    {
        $gto = $sortedArray[$officeid]+$gto;

    }
    $sortedArray[$officeid]=$gto;

}
 

Andkorol

Новичок
Задача вполне решаема – но неправильна по сути.
Ключи массива должны быть уникальными:
Если несколько элементов в объявлении массива используют одинаковый ключ, то только последний будет использоваться, а все другие будут перезаписаны.
Всяческие сложения-вычитания-итд с ключами массива могут привести к таким вот коллизиям – и данные могут быть потеряны в процессе.
Опиши конечную цель всех этих манипуляций – наверняка есть более правильный способ её достижения.
 

Real1tySucks

Новичок
Задача вполне решаема – но неправильна по сути.
Ключи массива должны быть уникальными:Всяческие сложения-вычитания-итд с ключами массива могут привести к таким вот коллизиям – и данные могут быть потеряны в процессе.
Опиши конечную цель всех этих манипуляций – наверняка есть более правильный способ её достижения.
Ну, уже обдумал, что это не есть правильно, и на этапе забивки массива исправил, см. сообзение выше.
 

fixxxer

К.О.
Партнер клуба
А если на входе будет
Код:
Array
(
    [2] => 2
    [3] => 2
    [1] => 1
    [4] => 1
)
то что надо получить?
 

Real1tySucks

Новичок
Тему можно закрыть, а еще лучше - удалить ) Т.к. изначально задача была поставлена не верно, и при пересмотре начальных условий всё срослось само по себе.
 
Сверху