我已陷入无尽的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等。
答案 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]);
}
}
}