0

我陷入了无休止的 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 等。

4

3 回答 3

1

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

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

于 2012-04-06T22:46:21.103 回答
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;
        }
    }
}
于 2012-04-06T23:03:20.810 回答
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]);
        }
    }
}
于 2012-04-06T23:03:27.510 回答