【发布时间】:2020-06-07 16:19:48
【问题描述】:
我在数组中有值,它们部分包含相同的值,但每个数组仅包含值的一些随机子集,例如:
$array1 = array("value2", "value3", "value5", "value6");
$array2 = array("value1", "value2", "value3", "value4", "value5");
$array3 = array("value1", "value3", "value4", "value5", "value6" , "value7");
我需要通过以下方式合并这种数组(当然也可以多于3个):
-
应该有一个输出数组,其中包含输入数组中出现的所有值,保持原始顺序。 (值之间没有其他逻辑关系(如字母顺序等),它们的位置由它们在输入数组中的分布定义。但至少在后台,每个值都有一个绝对位置,所以这是不可能的在一个输入数组中获取 ...value1, value2...,在另一个输入数组中获取 ...value2, value1...。同样重要的是,值在数组中始终是唯一的,它们不能重复出现。 ) 对于给定的输入,输出应该是:
$输出:数组 ( [0] => "值1" [1] =>“价值2” [2] => “价值 3” [3] => “价值 4” [4] =>“价值5” [5] =>“价值6” [6] =>“价值7” )
-
我需要展示,它是如何被发现和合并的,就像一个完整的外部连接,但要保持顺序。输出应如下所示:
我正在考虑使用 array_merge,或者将它与 array_diff 结合使用,但我不确定如何将它们一起使用。我的想法是从最短的输入数组开始,然后通过获取较长的数组来构建合并集。
提前谢谢你。
【问题讨论】: