2016-08-25 5 views
1

Я не понимаю этого, пытаясь суммировать значения ключей, которые одинаковы в ассоциативном массиве. Я думал, что это будет непростой задачей, но это не тот случай, так пожалуйста ...Как суммировать значения одного и того же ключа в ассоциативном массиве

Я ожидаю, что следующий результат:

1 -->(7) 
2 -->(14) 

Вот массив:

$array = array(1=>4, 2=>8, 1=>3, 2=>6,); 

Вот то, что я пытался с:

$sum= array(); 

Еогеасп ($ массив в качестве $ ключ => $ значение) {$ сумма [$ ключ] + = $ значение;} print_r ($ sum);

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

Array ([1] => 3 [2] => 6); 

и ошибка,

Undefined offset: 1 

Я думал, может быть, есть функция PHP, чтобы справиться с этим, но я Будем рады любой помощи.

+0

Что-то я не знаю. Просто нашел другой подход, основанный на том, что вы сказали, и он отлично работает, спасибо за помощь – alexis

ответ

0

То, что вы хотите, невозможно. Массивы не могут иметь дубликаты ключей:

php > $arr = array(1=>2, 1=>500); 
php > var_dump($arr); 
array(1) { 
    [1]=> 
    int(500) // hey! where'd "2" go? 
} 

Если вы хотите хранить несколько значений в одном ключе, то этот ключ должен указывать на массив:

$arr = array(); 
$arr[1] = array(1, 500); 
var_dump($arr); 
php > var_dump($arr); 
array(1) { 
    [1]=> 
    array(2) { 
    [0]=> 
    int(1) 
    [1]=> 
    int(500) 
    } 
} 
+0

Привет, Марк, благодарю вас за вашу поддержку. Основываясь на ваших рекомендациях, и что от @Paul Crovella, я попробовал другой подход, пытаясь изолировать каждый ключ в массиве. Полученный так желаемый результат, но все же постоянная ошибка: Неопределенное смещение: 1 Неопределенное смещение: 7 на каждый ключ ... Что я сделал, выглядит так: $ arr = array (array (1 => 500), array (1 => 20), массив (7 => 5)); $ arraySum = array(); Еогеасп (ключ $ обр а $ => $ arrChilds) { \t Еогеасп ($ arrChilds как $ key2 => $ значение) { $ arraySum [$ ключ2] + = $ значение; } } print_r ($ arraySum); – alexis

+0

Второй подход работал отлично, так как я узнал о stackoverflow, как избавиться от уведомлений. Просто хочу еще раз поблагодарить. http://stackoverflow.com/questions/1496682/how-to-sum-values-of-the-array-of-the-same-key/9938193#9938193 – alexis

 Смежные вопросы

  • Нет связанных вопросов^_^