PHPunit中的典型@dataProvider方法如下所示:
return [
[const1, true],
[const2, true],
[const3, true],
[const1, false],
[const2, false],
[const3, false],
];
这实际上是[const1,const2,const3]与[true,false]的乘法。当我们没有那么多的值时,可以对其进行硬编码。
但是当我们在每个“轴”中有很多项时,它变得太长了重复值列表。一种可能的解决方案是每个“轴”的一个foreach。但是,如果我们有很多“轴”,那该怎么办?
所以问题是 - 有人知道为这种情况创建多轴多值数组的一些优雅方法吗?
TNX。
答案 0 :(得分:0)
$array = [['const1','const2','const3'], [true, false]];
$count = array_map('count', $array);
$finalSize = array_product($count);
$arraySize = count($array);
$output = array_fill(0, $finalSize, []);
$i = 0;
$c = 0;
for (; $i < $finalSize; $i++) {
for ($c = 0; $c < $arraySize; $c++) {
$output[$i][] = $array[$c][$i % $count[$c]];
}
}