合并数组并删除重复值

时间:2018-05-04 07:46:56

标签: php arrays arraylist

我有一个看起来像这样的数组

Array
    (
        [0] => 1,2,4
        [1] => 1
        [2] => 1,2
        [24] => 2
        [44] => 1,2,3,4,5
        [86] => 1,2,5
        [139] => 4
        [156] => 1,4
        [170] => 1,2,4,5
        [201] => 1,3
        [208] => 1,2,3
        [237] => 1,5
    )

现在我想将所有值合并到一个没有重复项的单个数组中,因此所需的输出应该如下所示

Array(
[0]=>1,2,3,4,5
)

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:2)

简短版本:

$result = implode(',', array_unique(explode(',', implode(',', $array))));

说明:

首先,您需要使用implode()和","将所有数组元素连接到一个字符串;作为分隔符。

这将产生

的效果
Array
(
    [0] => 1,2,4
    [1] => 1
    [2] => 1,2
)

将加入一个看起来像

的字符串
1,2,4,1,1,2

然后使用explode()和""来爆炸字符串。这会将所有元素拆分为单个数组值

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 1
    [4] => 1
    [5] => 2
)

然后使用array_unique()创建数组的唯一值,这将为您提供如下数组:

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
)

最后,你使用implode()和","再次内爆它们。这是你的结果字符串:

1,2,4

答案 1 :(得分:0)

这样的事情应该这样做:

$output = [];
array_map(function ($numbers) use (&$output) {
    $output = array_merge($output, explode(",", $numbers));
}, $input);
$output = array_unique($output);