配列の可能な組み合わせを生成する関数を作成しようとしています。
例 :
$a = array('0', '1', '2');
// wanted results
// 0
// 1
// 2
// 0 0
// 0 1
// 0 2
// 1 0
// 1 1
// 1 2
// 2 0
// 2 1
// 2 2 and so on..
すべての組み合わせを 1 つの配列にするのではなく、一度に 1 つの組み合わせだけを取得したい。
何かのようなもの :
getCombination(); // 0
getCombination(); // 1
getCombination(); // 2
getCombination(); // 0 0 and so on...
私のコードは次のようになります(ただし、期待どおりに動作しません):
$val = array('0', '1', '2');
$now = array();
$t = 0;
$c = 0;
$v = 0;
$x = array();
function inc()
{
global $val, $now, $t, $c, $v, $x;
if(count($x) <> $c)
{
for($i = -1; ++$i < $c + 1;)
{
$x[$i] = 0;
$now[$i] = $val[0];
}
}
$now[$v] = $val[$t];
if($t + 1 >= count($val))
{
if($c)
{
if($v >= $c)
{
$v = 0;
++$c;
}
else
{
++$v;
}
}
else
{
++$c;
}
$t = 0;
}
else
{
++$t;
}
echo implode(' ', $now), '<br>';
}
for($i = 0; $i < 150; $i++)
{
inc();
}
このための機能またはクラスを構築する方法についてのアイデアが必要です。