Shopware\DataGenerator\Resources\Articles::createCartesianProduct PHP Method

createCartesianProduct() private method

Helper function which creates a cartesian product
private createCartesianProduct ( $arrays ) : array
$arrays
return array
    private function createCartesianProduct($arrays)
    {
        $cartesian = array();
        $dims = array_reverse($arrays);
        foreach ($dims as $dimName => $dim) {
            $buf = array();
            foreach ($dim as $val) {
                $buf[] = array($dimName => $val);
            }
            if (!count($cartesian)) {
                $cartesian = $buf;
            } else {
                $tmp = array();
                foreach ($buf as $elBuf) {
                    foreach ($cartesian as $elAp) {
                        $tmp[] = array_merge($elBuf, $elAp);
                    }
                }
                $cartesian = $tmp;
            }
        }
        return $cartesian;
    }