/** * * @param Scenario_Experiment $experiment * @return array */ private function _treatmentMatrix(Scenario_Experiment $experiment) { if ($experiment->isMultiVar()) { $tmp = array(); foreach ($experiment->getChildren() as $cxp) { /* @var $cxp Scenario_Experiment */ $tmp[$cxp->getExperimentID()] = array_keys($experiment->getWeightings()); } if (count($tmp) == 0) { return array(); } ksort($tmp); $out = array(); foreach ($tmp[0] as $val) { $out[] = array($val); } if (count($tmp) == 1) { return $out; } for ($i = 1; $i < count($order); $i++) { $old = $out; $out = array(); foreach ($tmp[$i] as $right) { foreach ($old as $left) { $out[] = array_merge($left, array($right)); } } } return $out; } else { $tmp = array_keys($experiment->getWeightings()); $out = array(); foreach ($tmp as $k) { $out[] = array($k); } return $out; } }