在将结果集格式化为以下格式后,我得到了如下所示的数组。
Array
(
[0] => xxx@2456
[1] => xxx@2345
[2] => xxy@1234
[3] => xxy@123
[4] => xyz@3456
);
我想要上面数组中的结果数组,如下所示。我在想如何继续使用PHP字符串函数或有任何其他方式。
注意:可能有如此多的数组元素,但我想在'@'之后添加最后一位数字后想要独特的元素。
Array
(
[0] => xxx@4801
[1] => xxy@1464
[2] => xyz@3456
);
任何想法如何进行.......在上面的输出数组格式中xxx @ 4801是输入数组的2345和2456之和.......
答案 0 :(得分:1)
你可以尝试
$unique = array_reduce($data, function ($a, $b) {
$c = explode("@", $b);
if (isset($a[$c[0]])) {
$d = explode("@", $a[$c[0]]);
$a[$c[0]] = $c[0] . "@" . ($c[1] + $d[1]);
} else {
$a[$c[0]] = $b;
}
return $a;
}, array());
echo "<pre>";
print_r(array_values($unique));
Array
(
[0] => xxx@4801
[1] => xxy@1357
[2] => xyz@3456
)
答案 1 :(得分:0)
您可以使用array_unique()
功能并使用array_values()
重新编制索引。例如,查找代码。