Мне необходимо преобразовать сложную строку в простой ассоциативный массив.
Вот, код, который работает, но меня не устраивает:
$string = 'a:1|b:2|c:3|a:4';
$array1 = array();
$array2 = explode('|', $string);
foreach($array2 as $str) {
list($key, $value) = explode(':', $str);
$array1[$key] = $value;
}
echo('<pre>');
print_r($array1);
echo('</pre>');
Здесь мы видим, что "a" повторяется дважды и, само собой, заменяется последним значением. На выходе я получаю:
Array
(
[a] => 4
[b] => 2
[c] => 3
)
Но мне нужно сделать так, чтобы одинаковые ключи складывались. То есть выход должен быть следующим:
Array
(
[a] => 5
[b] => 2
[c] => 3
)
Как это сделать?