Получился такой массив:
$arr = array(
"nameA" => 10,
"nameA" => 10,
"nameB" => 10,
"nameB" => 10,
"nameB" => 20
);
Как проще всего превратить это в это:
$arr2 = array(
"nameA" => 20,
"nameB" => 40
);
Как сказал @FelippeDuarte, массив имеет несколько ключей и стирает более ранние данные, оставляя вас с nameA = 10 и nameB = 20






Если вы хотите сохранить такие данные, вы можете использовать двумерный массив.
$data = array(
„nameA“ => array( 10, 20, 30 ),
„nameB“ => array( 10, 20 )
);
Суммируя значения:
foreach( $data as $d ){
$d = array_sum( $d );
}
$arr = array(
"nameA" => 10,
"nameA" => 10,
"nameB" => 10,
"nameB" => 10,
"nameB" => 20
);
когда вы так объявляете, в $ arr всегда будет неявно два элемента. Но я не знаю, какова ваша цель этой декларации, зачем вы ее сначала подводите.
Ваш ввод недействителен. У вас не может быть один и тот же ключ дважды. PHP проигнорирует дублированные ключи и останется с последним.