我有一个如下所示的数组:
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
)
我尝试了很多方法,似乎没有一种方法可行......而且我有一种感觉,我一直在做错的方式。有任何想法吗?
答案 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)