由于相似的值组合了数组元素

时间:2014-05-20 16:50:16

标签: php arrays

我有一个如下所示的数组:

array(
0 => headerOne:3
1 => headerTwo:5
2 => headerThree:6
3 => headerFour:3
4 => headerTwo:10
)

我有两个包含以“headerTwo”开头的字符串的元素 我要做的是将它开始的元素与相同的头合并,然后在合并时添加字符串中的整数。所以最终的结果是这样的:

array(
0 => headerOne:3
1 => headerTwo:15
2 => headerThree:6
3 => headerFour:3
)

我尝试了很多方法,似乎没有一种方法可行......而且我有一种感觉,我一直在做错的方式。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

试试:

$input = array(
    'headerOne:3',
    'headerTwo:5',
    'headerThree:6',
    'headerFour:3',
    'headerTwo:10'
);
$temp   = array();
$output = array();

foreach ($input as $data) {
    list($key, $value) = explode(':', $data);
    if (!isset($temp[$key])) {
        $temp[$key] = 0;
    }
    $temp[$key] += (int) $value;
}

foreach ($temp as $key => $value) {
    $output[] = $key . ':' . $value;
}


var_dump($output);

输出:

array (size=4)
  0 => string 'headerOne:3' (length=11)
  1 => string 'headerTwo:15' (length=12)
  2 => string 'headerThree:6' (length=13)
  3 => string 'headerFour:3' (length=12)