我有一个看起来像这样的数组
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
)
任何帮助将不胜感激。感谢
答案 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);