PHP通过唯一值创建/合并数组

时间:2012-04-06 22:34:05

标签: php arrays merge

我已陷入无尽的foreach。

我有一个阵列:

$array[0] = array( A,B );
$array[1] = array( A,C );
$array[2] = array( B,C );
$array[3] = array( B,E );
$array[4] = array( C,E );

我需要得到的是:

$array[0] = array( A,B,C );
$array[1] = array( A,B,E );
$array[2] = array( A,C,E );
$array[3] = array( B,C,E );

有一种简单的方法可以通过简单的功能实现这一目标吗?此外,我需要创建上述结果的4个值数组:A,B,C,E等。

3 个答案:

答案 0 :(得分:1)

如果您需要生成唯一permutations数组,可以使用本文中的代码:

http://www.dannyherran.com/2011/06/finding-unique-array-combinations-with-php-permutations/

答案 1 :(得分:1)

像这样(未经测试):

$out = array();
foreach($array as $first) {
    foreach($array as $second) {
        if (array_slice($first, 1) == array_slice($second, -1)) {
            $copy = $first;
            $last = array_slice($second, -1, 1);
            $copy []= $last[0];
            $out []= $copy;
        }
    }
}

答案 2 :(得分:0)

怎么样:

$array[0] = array( A,B );
$array[1] = array( A,C );
$array[2] = array( B,C );
$array[3] = array( B,E );
$array[4] = array( C,E );

$array2 = new array();

for($i = 0; $i < count($array); $i++)
{
    for($j = 0; $j < count($array); $j++)
    {
        if($array[$i][1] == $array[$j][0])
        {
            $array2[] = new array($array[$i][0], $array[$i][1], $array[$j][1]);
        }
    }
}
相关问题