数组格式化为特定格式?

时间:2013-01-02 07:18:45

标签: php arrays codeigniter

在将结果集格式化为以下格式后,我得到了如下所示的数组。

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之和.......

2 个答案:

答案 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));

Output

Array
(
    [0] => xxx@4801
    [1] => xxy@1357
    [2] => xyz@3456
)

Simple Online Demo

答案 1 :(得分:0)

您可以使用array_unique()功能并使用array_values()重新编制索引。例如,查找代码。